)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0537c102a3a9c2e0b7fa0cbc79387ca5e928e7d7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Kashyap Chamarthy \u003ckchamart@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-05-11 15:01:41 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: Remove usage of migrateToURI2() API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The recently updated minimum required libvirt version (1.3.1; in commit"},{"line_number":10,"context_line":"403320b -- libvirt: Bump MIN_{LIBVIRT,QEMU}_VERSION for \"Rocky\") brings"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_42f66865","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":44},"updated":"2018-05-14 16:40:45.000000000","message":"what about the migrateToURI() call? Can we get rid of it too?","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5120fdb75a76eaf0b9bea4b3ed78a223043ef808","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Clean up the following:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":" - Remove the no longer needed \u0027domain_xml\u0027 parameter from the Nova"},{"line_number":24,"context_line":"   migrate() method."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":" - Remove or fix various unit tests to use migrateToURI3()."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_76b1e944","line":24,"range":{"start_line":23,"start_character":1,"end_line":24,"end_character":20},"updated":"2018-07-31 14:15:57.000000000","message":"You could have been a bit more precise by indicating the new parameters added","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"bdde965717b527828b0d04bc6999d631485d8fe2","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Clean up the following:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":" - Remove the no longer needed \u0027domain_xml\u0027 parameter from the Nova"},{"line_number":24,"context_line":"   migrate() method."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":" - Remove or fix various unit tests to use migrateToURI3()."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_6a281684","line":24,"range":{"start_line":23,"start_character":1,"end_line":24,"end_character":20},"in_reply_to":"5f7c97a3_76b1e944","updated":"2018-07-31 15:45:39.000000000","message":"Oh, missed that bit :-)\n\nYep, I\u0027ll note that we\u0027ve added: \u0027destination_xml\u0027 and \u0027migrate_disks\u0027","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"}],"nova/tests/unit/virt/libvirt/fakelibvirt.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2446c6f5536426cb030da196c0c24bbd7b1d0e3a","unresolved":false,"context_lines":[{"line_number":752,"context_line":"                self._def[\u0027vcpu\u0027],"},{"line_number":753,"context_line":"                123456789]"},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"    def migrateToURI(self, desturi, flags, dname, bandwidth):"},{"line_number":756,"context_line":"        raise make_libvirtError("},{"line_number":757,"context_line":"                libvirtError,"},{"line_number":758,"context_line":"                \"Migration always fails for fake libvirt!\","},{"line_number":759,"context_line":"                error_code\u003dVIR_ERR_INTERNAL_ERROR,"},{"line_number":760,"context_line":"                error_domain\u003dVIR_FROM_QEMU)"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"    def migrateToURI3(self, dconnuri, params, flags):"},{"line_number":763,"context_line":"        raise make_libvirtError("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_b0569804","line":760,"range":{"start_line":755,"start_character":0,"end_line":760,"end_character":43},"updated":"2018-06-13 06:28:26.000000000","message":"Why isn\u0027t it removed?","commit_id":"3ded90d720bdf255cf751d72ddea4594b32fbd19"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"1e5e56a771830a56646878cd5877b4f64bfcdcac","unresolved":false,"context_lines":[{"line_number":752,"context_line":"                self._def[\u0027vcpu\u0027],"},{"line_number":753,"context_line":"                123456789]"},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"    def migrateToURI(self, desturi, flags, dname, bandwidth):"},{"line_number":756,"context_line":"        raise make_libvirtError("},{"line_number":757,"context_line":"                libvirtError,"},{"line_number":758,"context_line":"                \"Migration always fails for fake libvirt!\","},{"line_number":759,"context_line":"                error_code\u003dVIR_ERR_INTERNAL_ERROR,"},{"line_number":760,"context_line":"                error_domain\u003dVIR_FROM_QEMU)"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"    def migrateToURI3(self, dconnuri, params, flags):"},{"line_number":763,"context_line":"        raise make_libvirtError("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_a995ca33","line":760,"range":{"start_line":755,"start_character":0,"end_line":760,"end_character":43},"in_reply_to":"5f7c97a3_b0569804","updated":"2018-06-13 12:33:42.000000000","message":"I had the change locally, but didn\u0027t commit it.  Will remove in next iteration.  Thanks.","commit_id":"3ded90d720bdf255cf751d72ddea4594b32fbd19"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6ab59460f3480c61f29dfd6fa675d81fb47d8d1f","unresolved":false,"context_lines":[{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"},{"line_number":9182,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"XMLDesc\")"},{"line_number":9183,"context_line":"    def test_live_migration_update_volume_xml(self, mock_xml,"},{"line_number":9184,"context_line":"\t\t\t\t\tmock_migrateToURI3,"},{"line_number":9185,"context_line":"\t\t\t\t\tget_updated_guest_xml,"},{"line_number":9186,"context_line":"\t\t\t\t\tmock_min_version):"},{"line_number":9187,"context_line":"        self.compute \u003d manager.ComputeManager()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_c79c135f","line":9184,"range":{"start_line":9184,"start_character":0,"end_line":9184,"end_character":5},"updated":"2018-05-10 01:19:53.000000000","message":"Do not use tabs. Use spaces instead of them.","commit_id":"ab97fe70d22e44027921337bf00626f0fef3aa4b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"776b9cb9dede64d9d06413223d229463ff58fa64","unresolved":false,"context_lines":[{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"},{"line_number":9182,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"XMLDesc\")"},{"line_number":9183,"context_line":"    def test_live_migration_update_volume_xml(self, mock_xml,"},{"line_number":9184,"context_line":"\t\t\t\t\tmock_migrateToURI3,"},{"line_number":9185,"context_line":"\t\t\t\t\tget_updated_guest_xml,"},{"line_number":9186,"context_line":"\t\t\t\t\tmock_min_version):"},{"line_number":9187,"context_line":"        self.compute \u003d manager.ComputeManager()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_818d87d4","line":9184,"range":{"start_line":9184,"start_character":0,"end_line":9184,"end_character":5},"in_reply_to":"5f7c97a3_c79c135f","updated":"2018-05-11 12:50:10.000000000","message":"Oops, I fixed it locally but didn\u0027t push it.","commit_id":"ab97fe70d22e44027921337bf00626f0fef3aa4b"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6ab59460f3480c61f29dfd6fa675d81fb47d8d1f","unresolved":false,"context_lines":[{"line_number":9180,"context_line":"    @mock.patch.object(nova.virt.libvirt.migration,"},{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"},{"line_number":9182,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"XMLDesc\")"},{"line_number":9183,"context_line":"    def test_live_migration_update_volume_xml(self, mock_xml,"},{"line_number":9184,"context_line":"\t\t\t\t\tmock_migrateToURI3,"},{"line_number":9185,"context_line":"\t\t\t\t\tget_updated_guest_xml,"},{"line_number":9186,"context_line":"\t\t\t\t\tmock_min_version):"},{"line_number":9187,"context_line":"        self.compute \u003d manager.ComputeManager()"},{"line_number":9188,"context_line":"\tinstance_ref \u003d self.test_instance"},{"line_number":9189,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_87ccdb61","line":9186,"range":{"start_line":9183,"start_character":52,"end_line":9186,"end_character":22},"updated":"2018-05-10 01:19:53.000000000","message":"The order of arguments is wrong.\nIt should be mock_xml, get_updated_guest_xml, mock_migrateToURI3, mock_min_version.\nAnd calling the mocks should be asserted with their arguments.","commit_id":"ab97fe70d22e44027921337bf00626f0fef3aa4b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"776b9cb9dede64d9d06413223d229463ff58fa64","unresolved":false,"context_lines":[{"line_number":9180,"context_line":"    @mock.patch.object(nova.virt.libvirt.migration,"},{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"},{"line_number":9182,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"XMLDesc\")"},{"line_number":9183,"context_line":"    def test_live_migration_update_volume_xml(self, mock_xml,"},{"line_number":9184,"context_line":"\t\t\t\t\tmock_migrateToURI3,"},{"line_number":9185,"context_line":"\t\t\t\t\tget_updated_guest_xml,"},{"line_number":9186,"context_line":"\t\t\t\t\tmock_min_version):"},{"line_number":9187,"context_line":"        self.compute \u003d manager.ComputeManager()"},{"line_number":9188,"context_line":"\tinstance_ref \u003d self.test_instance"},{"line_number":9189,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_416a0fee","line":9186,"range":{"start_line":9183,"start_character":52,"end_line":9186,"end_character":22},"in_reply_to":"5f7c97a3_87ccdb61","updated":"2018-05-11 12:50:10.000000000","message":"Yep, will fix.\n\nThanks for the review.","commit_id":"ab97fe70d22e44027921337bf00626f0fef3aa4b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a9d71333a2656693dc9b7e51e3822769b669d64e","unresolved":false,"context_lines":[{"line_number":9175,"context_line":"        guest.migrate_configure_max_speed.assert_called_once_with("},{"line_number":9176,"context_line":"            CONF.libvirt.live_migration_bandwidth)"},{"line_number":9177,"context_line":""},{"line_number":9178,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":9179,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"},{"line_number":9180,"context_line":"    @mock.patch.object(nova.virt.libvirt.migration,"},{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_761b2972","line":9178,"range":{"start_line":9178,"start_character":4,"end_line":9178,"end_character":71},"updated":"2018-05-14 16:50:27.000000000","message":"What is this for? Doesn\u0027t look like it\u0027s called in the _live_migration_operation path.","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"33a4afbd6c986f75965f57cc6f9a8cbe58d618c1","unresolved":false,"context_lines":[{"line_number":9175,"context_line":"        guest.migrate_configure_max_speed.assert_called_once_with("},{"line_number":9176,"context_line":"            CONF.libvirt.live_migration_bandwidth)"},{"line_number":9177,"context_line":""},{"line_number":9178,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":9179,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"},{"line_number":9180,"context_line":"    @mock.patch.object(nova.virt.libvirt.migration,"},{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_29e3faa5","line":9178,"range":{"start_line":9178,"start_character":4,"end_line":9178,"end_character":71},"in_reply_to":"5f7c97a3_761b2972","updated":"2018-05-15 13:16:00.000000000","message":"I think I was playing with different variants of tests and probably missed to remove it.","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a9d71333a2656693dc9b7e51e3822769b669d64e","unresolved":false,"context_lines":[{"line_number":9176,"context_line":"            CONF.libvirt.live_migration_bandwidth)"},{"line_number":9177,"context_line":""},{"line_number":9178,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":9179,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"},{"line_number":9180,"context_line":"    @mock.patch.object(nova.virt.libvirt.migration,"},{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"},{"line_number":9182,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"XMLDesc\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_5cd9711f","line":9179,"range":{"start_line":9179,"start_character":4,"end_line":9179,"end_character":62},"updated":"2018-05-14 16:50:27.000000000","message":"Does this really need to be done here if we\u0027re already patch it at L9223?","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"33a4afbd6c986f75965f57cc6f9a8cbe58d618c1","unresolved":false,"context_lines":[{"line_number":9176,"context_line":"            CONF.libvirt.live_migration_bandwidth)"},{"line_number":9177,"context_line":""},{"line_number":9178,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":9179,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"},{"line_number":9180,"context_line":"    @mock.patch.object(nova.virt.libvirt.migration,"},{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"},{"line_number":9182,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"XMLDesc\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_c9eb6675","line":9179,"range":{"start_line":9179,"start_character":4,"end_line":9179,"end_character":62},"in_reply_to":"5f7c97a3_5cd9711f","updated":"2018-05-15 13:16:00.000000000","message":"Hmm, I\u0027ll tinker locally and see if I can eliminate it.","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a9d71333a2656693dc9b7e51e3822769b669d64e","unresolved":false,"context_lines":[{"line_number":9177,"context_line":""},{"line_number":9178,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":9179,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"},{"line_number":9180,"context_line":"    @mock.patch.object(nova.virt.libvirt.migration,"},{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"},{"line_number":9182,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"XMLDesc\")"},{"line_number":9183,"context_line":"    def test_live_migration_update_volume_xml(self, mock_xml,"},{"line_number":9184,"context_line":"                                    get_updated_guest_xml,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_3c0cb5a3","line":9181,"range":{"start_line":9180,"start_character":4,"end_line":9181,"end_character":64},"updated":"2018-05-14 16:50:27.000000000","message":"Similar with this, already patching it at L9225?","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a9d71333a2656693dc9b7e51e3822769b669d64e","unresolved":false,"context_lines":[{"line_number":9179,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"},{"line_number":9180,"context_line":"    @mock.patch.object(nova.virt.libvirt.migration,"},{"line_number":9181,"context_line":"                       \u0027get_updated_guest_xml\u0027, return_value\u003d\u0027\u0027)"},{"line_number":9182,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"XMLDesc\")"},{"line_number":9183,"context_line":"    def test_live_migration_update_volume_xml(self, mock_xml,"},{"line_number":9184,"context_line":"                                    get_updated_guest_xml,"},{"line_number":9185,"context_line":"                                    mock_migrateToURI3,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_a74d0e3f","line":9182,"range":{"start_line":9182,"start_character":4,"end_line":9182,"end_character":56},"updated":"2018-05-14 16:50:27.000000000","message":"I don\u0027t see this being called in the _live_migration_operation path, so it looks like we don\u0027t need it.","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"acc4b4d7a8092df07f45a9aa93edd771bad5aba0","unresolved":false,"context_lines":[{"line_number":9230,"context_line":"            test_mock.XMLDesc.return_value \u003d target_xml"},{"line_number":9231,"context_line":"            self.assertFalse(drvr._live_migration_operation("},{"line_number":9232,"context_line":"                             self.context, instance_ref, \u0027dest\u0027, False,"},{"line_number":9233,"context_line":"                             migrate_data, guest, [],"},{"line_number":9234,"context_line":"                             libvirt_driver.MIN_MIGRATION_SPEED_BW))"},{"line_number":9235,"context_line":"            mupdate.assert_called_once_with("},{"line_number":9236,"context_line":"                guest, migrate_data, mock.ANY)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_3211625e","line":9233,"updated":"2018-05-11 15:31:19.000000000","message":"Although Zuul succeeds, I should probably rewrite this test to also actually use migrateToURI3() calls, like the other tests (e.g. test_live_migration_update_graphics_xml) I\u0027ve converted as part of the version bump patch series.\n\nE.g. something like:\n\n        [...]\n        mock_migrateToURI3.assert_called_once_with(\n                drvr._live_migration_uri(\u0027dest\u0027),\n                params\u003dparams, flags\u003d0)\n        [...]","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2446c6f5536426cb030da196c0c24bbd7b1d0e3a","unresolved":false,"context_lines":[{"line_number":9110,"context_line":"        drvr._live_migration_operation(self.context, instance, \u0027dest\u0027,"},{"line_number":9111,"context_line":"                                       False, migrate_data, guest, [],"},{"line_number":9112,"context_line":"                                       bandwidth\u003d_bandwidth)"},{"line_number":9113,"context_line":"        # when new xml is not passed we fall back to migrateToURI"},{"line_number":9114,"context_line":"        dom_mock.migrateToURI.assert_called_once_with("},{"line_number":9115,"context_line":"            drvr._live_migration_uri(\u0027dest\u0027),"},{"line_number":9116,"context_line":"            flags\u003d0, bandwidth\u003d_bandwidth)"},{"line_number":9117,"context_line":""},{"line_number":9118,"context_line":"    @mock.patch.object(utils, \u0027spawn\u0027)"},{"line_number":9119,"context_line":"    @mock.patch.object(host.Host, \u0027get_guest\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_f0797092","side":"PARENT","line":9116,"range":{"start_line":9113,"start_character":0,"end_line":9116,"end_character":42},"updated":"2018-06-13 06:28:26.000000000","message":"dom_mock.migrateToURI3 should be asserted instead of just removing it.","commit_id":"c208a102950e1f982c7ccf9aa6bf7d05d7261601"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"440d70e759276303971f859467502e0ea81c1969","unresolved":false,"context_lines":[{"line_number":9630,"context_line":"        disk_paths \u003d [\u0027vda\u0027, \u0027vdb\u0027]"},{"line_number":9631,"context_line":"        params \u003d {"},{"line_number":9632,"context_line":"            \u0027migrate_uri\u0027: \u0027tcp://127.0.0.2\u0027,"},{"line_number":9633,"context_line":"            \u0027migrate_disks\u0027: [\u0027vda\u0027, \u0027vdb\u0027],"},{"line_number":9634,"context_line":"            \u0027bandwidth\u0027: libvirt_driver.MIN_MIGRATION_SPEED_BW,"},{"line_number":9635,"context_line":"            \u0027destination_xml\u0027: target_xml,"},{"line_number":9636,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_1ff56b52","line":9633,"range":{"start_line":9633,"start_character":29,"end_line":9633,"end_character":44},"updated":"2018-07-27 13:45:15.000000000","message":"nit: this could also be disk_paths as you have done below. technically that is an unrelated change however but i would not object if you mad it :)","commit_id":"956b5394a875b4075136ad357240c53f43431df7"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"97bd054914552847c6d081fcbdc0c4a4f882d1b9","unresolved":false,"context_lines":[{"line_number":9630,"context_line":"        disk_paths \u003d [\u0027vda\u0027, \u0027vdb\u0027]"},{"line_number":9631,"context_line":"        params \u003d {"},{"line_number":9632,"context_line":"            \u0027migrate_uri\u0027: \u0027tcp://127.0.0.2\u0027,"},{"line_number":9633,"context_line":"            \u0027migrate_disks\u0027: [\u0027vda\u0027, \u0027vdb\u0027],"},{"line_number":9634,"context_line":"            \u0027bandwidth\u0027: libvirt_driver.MIN_MIGRATION_SPEED_BW,"},{"line_number":9635,"context_line":"            \u0027destination_xml\u0027: target_xml,"},{"line_number":9636,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_5e3745fe","line":9633,"range":{"start_line":9633,"start_character":29,"end_line":9633,"end_character":44},"in_reply_to":"5f7c97a3_1ff56b52","updated":"2018-07-30 10:38:08.000000000","message":"Yep, missed this occurrence; thought I fixed all the relevant ones.  Will do.","commit_id":"956b5394a875b4075136ad357240c53f43431df7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"440d70e759276303971f859467502e0ea81c1969","unresolved":false,"context_lines":[{"line_number":9671,"context_line":""},{"line_number":9672,"context_line":"        disk_paths \u003d [\u0027vda\u0027, \u0027vdb\u0027]"},{"line_number":9673,"context_line":"        params \u003d {"},{"line_number":9674,"context_line":"            \u0027migrate_uri\u0027: target_connection,"},{"line_number":9675,"context_line":"            \u0027migrate_disks\u0027: disk_paths,"},{"line_number":9676,"context_line":"            \u0027bandwidth\u0027: libvirt_driver.MIN_MIGRATION_SPEED_BW,"},{"line_number":9677,"context_line":"            \u0027destination_xml\u0027: None"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_ee855e0b","line":9674,"range":{"start_line":9674,"start_character":27,"end_line":9674,"end_character":45},"updated":"2018-07-27 13:45:15.000000000","message":"nit: for consitency maybe use None directly here\nas ingeneral the target_connection varible will not match migrate_uri","commit_id":"956b5394a875b4075136ad357240c53f43431df7"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"97bd054914552847c6d081fcbdc0c4a4f882d1b9","unresolved":false,"context_lines":[{"line_number":9671,"context_line":""},{"line_number":9672,"context_line":"        disk_paths \u003d [\u0027vda\u0027, \u0027vdb\u0027]"},{"line_number":9673,"context_line":"        params \u003d {"},{"line_number":9674,"context_line":"            \u0027migrate_uri\u0027: target_connection,"},{"line_number":9675,"context_line":"            \u0027migrate_disks\u0027: disk_paths,"},{"line_number":9676,"context_line":"            \u0027bandwidth\u0027: libvirt_driver.MIN_MIGRATION_SPEED_BW,"},{"line_number":9677,"context_line":"            \u0027destination_xml\u0027: None"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_1e58ed54","line":9674,"range":{"start_line":9674,"start_character":27,"end_line":9674,"end_character":45},"in_reply_to":"5f7c97a3_ee855e0b","updated":"2018-07-30 10:38:08.000000000","message":"Indeed; will fix.  I noticed it, and thought I fixed all instances of it.","commit_id":"956b5394a875b4075136ad357240c53f43431df7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"0bae24b0a97413fafc2759d4f1ebc0ebe0d8b60b","unresolved":false,"context_lines":[{"line_number":10337,"context_line":"        _bandwidth \u003d libvirt_driver.MIN_MIGRATION_SPEED_BW"},{"line_number":10338,"context_line":"        # Since we are passing the VIR_MIGRATE_TUNNELLED flag, the"},{"line_number":10339,"context_line":"        # \u0027parms\u0027 dict will not (as expected) contain \u0027migrate_disks\u0027"},{"line_number":10340,"context_line":"        params \u003d {"},{"line_number":10341,"context_line":"            \u0027bandwidth\u0027: _bandwidth"},{"line_number":10342,"context_line":"        }"},{"line_number":10343,"context_line":"        # Start test"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_45174d55","line":10340,"updated":"2018-07-31 17:02:04.000000000","message":"++","commit_id":"4b3e877210dd1fa9f7bcee0ad655e72de87c9439"}],"nova/tests/unit/virt/libvirt/test_guest.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5120fdb75a76eaf0b9bea4b3ed78a223043ef808","unresolved":false,"context_lines":[{"line_number":645,"context_line":"    @testtools.skipIf(not six.PY2, \u0027libvirt python3 bindings accept unicode\u0027)"},{"line_number":646,"context_line":"    def test_migrate_v3_unicode(self):"},{"line_number":647,"context_line":"        self.guest.migrate(\u0027an-uri\u0027, flags\u003d1, migrate_uri\u003d\u0027dest-uri\u0027,"},{"line_number":648,"context_line":"                           migrate_disks\u003du\u0027disk1\u0027,"},{"line_number":649,"context_line":"                           destination_xml\u003d\u0027\u003c/xml\u003e\u0027,"},{"line_number":650,"context_line":"                           bandwidth\u003d2)"},{"line_number":651,"context_line":"        self.domain.migrateToURI3.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_76d32903","line":648,"range":{"start_line":648,"start_character":41,"end_line":648,"end_character":49},"updated":"2018-07-31 14:15:57.000000000","message":"This should be a list. I think it\u0027s important in the context of that test (PY2). We don\u0027t want the algo that is converting string to raise an error because in real it will receive a list.","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"bdde965717b527828b0d04bc6999d631485d8fe2","unresolved":false,"context_lines":[{"line_number":645,"context_line":"    @testtools.skipIf(not six.PY2, \u0027libvirt python3 bindings accept unicode\u0027)"},{"line_number":646,"context_line":"    def test_migrate_v3_unicode(self):"},{"line_number":647,"context_line":"        self.guest.migrate(\u0027an-uri\u0027, flags\u003d1, migrate_uri\u003d\u0027dest-uri\u0027,"},{"line_number":648,"context_line":"                           migrate_disks\u003du\u0027disk1\u0027,"},{"line_number":649,"context_line":"                           destination_xml\u003d\u0027\u003c/xml\u003e\u0027,"},{"line_number":650,"context_line":"                           bandwidth\u003d2)"},{"line_number":651,"context_line":"        self.domain.migrateToURI3.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_cfd4dc4d","line":648,"range":{"start_line":648,"start_character":41,"end_line":648,"end_character":49},"in_reply_to":"5f7c97a3_76d32903","updated":"2018-07-31 15:45:39.000000000","message":"Ah, yep, will fix in next iteration.","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5f540dc2cb8d2dcbc09d1a0240a8a5d9e2714ea9","unresolved":false,"context_lines":[{"line_number":645,"context_line":"    @testtools.skipIf(not six.PY2, \u0027libvirt python3 bindings accept unicode\u0027)"},{"line_number":646,"context_line":"    def test_migrate_v3_unicode(self):"},{"line_number":647,"context_line":"        self.guest.migrate(\u0027an-uri\u0027, flags\u003d1, migrate_uri\u003d\u0027dest-uri\u0027,"},{"line_number":648,"context_line":"                           migrate_disks\u003du\u0027disk1\u0027,"},{"line_number":649,"context_line":"                           destination_xml\u003d\u0027\u003c/xml\u003e\u0027,"},{"line_number":650,"context_line":"                           bandwidth\u003d2)"},{"line_number":651,"context_line":"        self.domain.migrateToURI3.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_20ef9f1c","line":648,"range":{"start_line":648,"start_character":41,"end_line":648,"end_character":49},"in_reply_to":"5f7c97a3_76d32903","updated":"2018-07-31 17:08:40.000000000","message":"Good catch","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"}],"nova/virt/driver.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"b368135440f89490cbbbcf2e8f68e8c2417e1b70","unresolved":false,"context_lines":[{"line_number":1130,"context_line":"        - setup_basic_filtering (for nova-basic, etc.)"},{"line_number":1131,"context_line":"        - prepare_instance_filter(for nova-instance-instance-xxx, etc.)"},{"line_number":1132,"context_line":""},{"line_number":1133,"context_line":"        The to_xml() method may have to be called, as it defines"},{"line_number":1134,"context_line":"        PROJNET, PROJMASK, but libvirt migrates those value through"},{"line_number":1135,"context_line":"        migrateToURI(), so it\u0027s not required."},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        Don\u0027t use thread for this method since migration should"},{"line_number":1138,"context_line":"        not be started when setting-up filtering rules operations"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_9db7b589","line":1135,"range":{"start_line":1133,"start_character":8,"end_line":1135,"end_character":45},"updated":"2018-07-23 15:08:53.000000000","message":"This seems to be saying \"it may be required but is not required\", which makes no sense.","commit_id":"351f297944f613eee0068e1a3c8867cb44c125eb"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f1e0154086ab45d76d7bf50c0a7628eb42791e0b","unresolved":false,"context_lines":[{"line_number":1130,"context_line":"        - setup_basic_filtering (for nova-basic, etc.)"},{"line_number":1131,"context_line":"        - prepare_instance_filter(for nova-instance-instance-xxx, etc.)"},{"line_number":1132,"context_line":""},{"line_number":1133,"context_line":"        The to_xml() method may have to be called, as it defines"},{"line_number":1134,"context_line":"        PROJNET, PROJMASK, but libvirt migrates those value through"},{"line_number":1135,"context_line":"        migrateToURI(), so it\u0027s not required."},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        Don\u0027t use thread for this method since migration should"},{"line_number":1138,"context_line":"        not be started when setting-up filtering rules operations"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_829e6db5","line":1135,"range":{"start_line":1133,"start_character":8,"end_line":1135,"end_character":45},"in_reply_to":"5f7c97a3_9db7b589","updated":"2018-07-23 17:18:47.000000000","message":"Yeah, I was trying to retain the \"original nonsense\".  I actually wanted to remove that, but forgot.  Let me delete that in the next iteration.","commit_id":"351f297944f613eee0068e1a3c8867cb44c125eb"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"b368135440f89490cbbbcf2e8f68e8c2417e1b70","unresolved":false,"context_lines":[{"line_number":7028,"context_line":"                    # the method _get_volume_config and we should to find"},{"line_number":7029,"context_line":"                    # a way to avoid this in future."},{"line_number":7030,"context_line":"                    guest, migrate_data, self._get_volume_config)"},{"line_number":7031,"context_line":"            params \u003d {"},{"line_number":7032,"context_line":"               \u0027destination_xml\u0027: new_xml_str,"},{"line_number":7033,"context_line":"               \u0027migrate_disks\u0027: device_names,"},{"line_number":7034,"context_line":"            }"},{"line_number":7035,"context_line":"            # NOTE(pkoniszewski): Because of precheck which blocks"},{"line_number":7036,"context_line":"            # tunnelled block live migration with mapped volumes we"},{"line_number":7037,"context_line":"            # can safely remove migrate_disks when tunnelling is on."},{"line_number":7038,"context_line":"            # Otherwise we will block all tunnelled block migrations,"},{"line_number":7039,"context_line":"            # even when an instance does not have volumes mapped."},{"line_number":7040,"context_line":"            # This is because selective disk migration is not"},{"line_number":7041,"context_line":"            # supported in tunnelled block live migration."},{"line_number":7042,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7043,"context_line":"                params.pop(\u0027migrate_disks\u0027)"},{"line_number":7044,"context_line":""},{"line_number":7045,"context_line":"            # TODO(sahid): This should be in"},{"line_number":7046,"context_line":"            # post_live_migration_at_source but no way to retrieve"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_3d56a12d","line":7043,"range":{"start_line":7031,"start_character":0,"end_line":7043,"end_character":43},"updated":"2018-07-23 15:08:53.000000000","message":"no longer using \"params\" so this should go away","commit_id":"351f297944f613eee0068e1a3c8867cb44c125eb"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f1e0154086ab45d76d7bf50c0a7628eb42791e0b","unresolved":false,"context_lines":[{"line_number":7028,"context_line":"                    # the method _get_volume_config and we should to find"},{"line_number":7029,"context_line":"                    # a way to avoid this in future."},{"line_number":7030,"context_line":"                    guest, migrate_data, self._get_volume_config)"},{"line_number":7031,"context_line":"            params \u003d {"},{"line_number":7032,"context_line":"               \u0027destination_xml\u0027: new_xml_str,"},{"line_number":7033,"context_line":"               \u0027migrate_disks\u0027: device_names,"},{"line_number":7034,"context_line":"            }"},{"line_number":7035,"context_line":"            # NOTE(pkoniszewski): Because of precheck which blocks"},{"line_number":7036,"context_line":"            # tunnelled block live migration with mapped volumes we"},{"line_number":7037,"context_line":"            # can safely remove migrate_disks when tunnelling is on."},{"line_number":7038,"context_line":"            # Otherwise we will block all tunnelled block migrations,"},{"line_number":7039,"context_line":"            # even when an instance does not have volumes mapped."},{"line_number":7040,"context_line":"            # This is because selective disk migration is not"},{"line_number":7041,"context_line":"            # supported in tunnelled block live migration."},{"line_number":7042,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7043,"context_line":"                params.pop(\u0027migrate_disks\u0027)"},{"line_number":7044,"context_line":""},{"line_number":7045,"context_line":"            # TODO(sahid): This should be in"},{"line_number":7046,"context_line":"            # post_live_migration_at_source but no way to retrieve"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_428e1534","line":7043,"range":{"start_line":7031,"start_character":0,"end_line":7043,"end_character":43},"in_reply_to":"5f7c97a3_3d56a12d","updated":"2018-07-23 17:18:47.000000000","message":"Yep, good catch.  But as you note below, we shouldn\u0027t forget to make \u0027migrate_disks\u0027 depend on VIR_MIGRATE_TUNNELLED.","commit_id":"351f297944f613eee0068e1a3c8867cb44c125eb"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"b368135440f89490cbbbcf2e8f68e8c2417e1b70","unresolved":false,"context_lines":[{"line_number":7056,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7057,"context_line":"                          migrate_uri\u003dmigrate_uri,"},{"line_number":7058,"context_line":"                          flags\u003dmigration_flags,"},{"line_number":7059,"context_line":"                          migrate_disks\u003ddevice_names,"},{"line_number":7060,"context_line":"                          destination_xml\u003dnew_xml_str,"},{"line_number":7061,"context_line":"                          bandwidth\u003dbandwidth)"},{"line_number":7062,"context_line":"            LOG.debug(\"Migrate API has completed\", instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_7d3979ef","line":7059,"range":{"start_line":7059,"start_character":26,"end_line":7059,"end_character":53},"updated":"2018-07-23 15:08:53.000000000","message":"this should depend on libvirt.VIR_MIGRATE_TUNNELED","commit_id":"351f297944f613eee0068e1a3c8867cb44c125eb"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"06e4372d2112d0a9c975f32a287c30eb806f4368","unresolved":false,"context_lines":[{"line_number":7021,"context_line":"                    libvirt.VIR_MIGRATE_TUNNELLED \u003d\u003d 0):"},{"line_number":7022,"context_line":"                    migrate_uri \u003d self._migrate_uri(dest)"},{"line_number":7023,"context_line":""},{"line_number":7024,"context_line":"            new_xml_str \u003d None"},{"line_number":7025,"context_line":"            if CONF.libvirt.virt_type !\u003d \"parallels\":"},{"line_number":7026,"context_line":"                new_xml_str \u003d libvirt_migrate.get_updated_guest_xml("},{"line_number":7027,"context_line":"                    # TODO(sahid): It\u0027s not a really good idea to pass"},{"line_number":7028,"context_line":"                    # the method _get_volume_config and we should to find"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_95e197d2","line":7025,"range":{"start_line":7024,"start_character":0,"end_line":7025,"end_character":53},"updated":"2018-07-25 10:38:11.000000000","message":"We\u0027ve got a new flow here: this would previously have called migrateToURI(), but now calls migrateToURI3 with destination_xml\u003dNone for parallels. Is this ok?","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"d43ce9c93c0b4a8f00738322097c17173016bc11","unresolved":false,"context_lines":[{"line_number":7021,"context_line":"                    libvirt.VIR_MIGRATE_TUNNELLED \u003d\u003d 0):"},{"line_number":7022,"context_line":"                    migrate_uri \u003d self._migrate_uri(dest)"},{"line_number":7023,"context_line":""},{"line_number":7024,"context_line":"            new_xml_str \u003d None"},{"line_number":7025,"context_line":"            if CONF.libvirt.virt_type !\u003d \"parallels\":"},{"line_number":7026,"context_line":"                new_xml_str \u003d libvirt_migrate.get_updated_guest_xml("},{"line_number":7027,"context_line":"                    # TODO(sahid): It\u0027s not a really good idea to pass"},{"line_number":7028,"context_line":"                    # the method _get_volume_config and we should to find"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_4b1fdc70","line":7025,"range":{"start_line":7024,"start_character":0,"end_line":7025,"end_character":53},"in_reply_to":"5f7c97a3_95e197d2","updated":"2018-07-25 12:49:54.000000000","message":"From what I see, and the tests, this seems to be OK.","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3fcacf386a65ea70fa13b23365a893fd9f93f928","unresolved":false,"context_lines":[{"line_number":7039,"context_line":"            if CONF.serial_console.enabled:"},{"line_number":7040,"context_line":"                serial_ports \u003d list(self._get_serial_ports_from_guest(guest))"},{"line_number":7041,"context_line":""},{"line_number":7042,"context_line":"            migrate_disks \u003d None"},{"line_number":7043,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7044,"context_line":"                    migrate_disks"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"            LOG.debug(\"About to invoke the migrate API\", instance\u003dinstance)"},{"line_number":7047,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7048,"context_line":"                          migrate_uri\u003dmigrate_uri,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_337eb16d","line":7045,"range":{"start_line":7042,"start_character":0,"end_line":7045,"end_character":0},"updated":"2018-07-24 17:02:56.000000000","message":"Line 7044 makes no sense.\n\nI think you should revert this block, preserve the comment block at 7035-7041, and just change 7045 to be \"device_names \u003d None\"","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"06e4372d2112d0a9c975f32a287c30eb806f4368","unresolved":false,"context_lines":[{"line_number":7039,"context_line":"            if CONF.serial_console.enabled:"},{"line_number":7040,"context_line":"                serial_ports \u003d list(self._get_serial_ports_from_guest(guest))"},{"line_number":7041,"context_line":""},{"line_number":7042,"context_line":"            migrate_disks \u003d None"},{"line_number":7043,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7044,"context_line":"                    migrate_disks"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"            LOG.debug(\"About to invoke the migrate API\", instance\u003dinstance)"},{"line_number":7047,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7048,"context_line":"                          migrate_uri\u003dmigrate_uri,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_bf7032a9","line":7045,"range":{"start_line":7042,"start_character":0,"end_line":7045,"end_character":0},"in_reply_to":"5f7c97a3_26d09ff4","updated":"2018-07-25 10:38:11.000000000","message":"+1 to sahid\u0027s suggestions. I would move this to guest.migrate(). A debug log containing all the arguments we passed to migrateToURI3 would also be very nice.","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4599b3777cb75aeb3a399e49874b08e622b3d021","unresolved":false,"context_lines":[{"line_number":7039,"context_line":"            if CONF.serial_console.enabled:"},{"line_number":7040,"context_line":"                serial_ports \u003d list(self._get_serial_ports_from_guest(guest))"},{"line_number":7041,"context_line":""},{"line_number":7042,"context_line":"            migrate_disks \u003d None"},{"line_number":7043,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7044,"context_line":"                    migrate_disks"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"            LOG.debug(\"About to invoke the migrate API\", instance\u003dinstance)"},{"line_number":7047,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7048,"context_line":"                          migrate_uri\u003dmigrate_uri,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_3fcae26e","line":7045,"range":{"start_line":7042,"start_character":0,"end_line":7045,"end_character":0},"in_reply_to":"5f7c97a3_26d09ff4","updated":"2018-07-25 09:09:56.000000000","message":"\u003e I would have also moved all this block in guest.migrate() and it\n \u003e would be great to have a log.debug or info\n\nHmm, hope it\u0027s OK do that as something on top of this.  As you see, there are already multiple moving parts here.","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3872eea2a75143fcb1fe7efa2b77724e907a661a","unresolved":false,"context_lines":[{"line_number":7039,"context_line":"            if CONF.serial_console.enabled:"},{"line_number":7040,"context_line":"                serial_ports \u003d list(self._get_serial_ports_from_guest(guest))"},{"line_number":7041,"context_line":""},{"line_number":7042,"context_line":"            migrate_disks \u003d None"},{"line_number":7043,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7044,"context_line":"                    migrate_disks"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"            LOG.debug(\"About to invoke the migrate API\", instance\u003dinstance)"},{"line_number":7047,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7048,"context_line":"                          migrate_uri\u003dmigrate_uri,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_9f3e9688","line":7045,"range":{"start_line":7042,"start_character":0,"end_line":7045,"end_character":0},"in_reply_to":"5f7c97a3_26d09ff4","updated":"2018-07-25 09:00:27.000000000","message":"As discussed with Kashyap, there are some many changes, if you can add a TODO note indicated that part should be moved in guest.migrate() that would be perfect","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"1900b6f05c5bfb0d249713c97159ba6b2bc20210","unresolved":false,"context_lines":[{"line_number":7039,"context_line":"            if CONF.serial_console.enabled:"},{"line_number":7040,"context_line":"                serial_ports \u003d list(self._get_serial_ports_from_guest(guest))"},{"line_number":7041,"context_line":""},{"line_number":7042,"context_line":"            migrate_disks \u003d None"},{"line_number":7043,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7044,"context_line":"                    migrate_disks"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"            LOG.debug(\"About to invoke the migrate API\", instance\u003dinstance)"},{"line_number":7047,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7048,"context_line":"                          migrate_uri\u003dmigrate_uri,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_46a049a5","line":7045,"range":{"start_line":7042,"start_character":0,"end_line":7045,"end_character":0},"in_reply_to":"5f7c97a3_337eb16d","updated":"2018-07-24 18:06:59.000000000","message":"Err, I was playing with different things, and messed this up.\n\nRework upcoming...","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4599b3777cb75aeb3a399e49874b08e622b3d021","unresolved":false,"context_lines":[{"line_number":7039,"context_line":"            if CONF.serial_console.enabled:"},{"line_number":7040,"context_line":"                serial_ports \u003d list(self._get_serial_ports_from_guest(guest))"},{"line_number":7041,"context_line":""},{"line_number":7042,"context_line":"            migrate_disks \u003d None"},{"line_number":7043,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7044,"context_line":"                    migrate_disks"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"            LOG.debug(\"About to invoke the migrate API\", instance\u003dinstance)"},{"line_number":7047,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7048,"context_line":"                          migrate_uri\u003dmigrate_uri,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_bfcd9293","line":7045,"range":{"start_line":7042,"start_character":0,"end_line":7045,"end_character":0},"in_reply_to":"5f7c97a3_337eb16d","updated":"2018-07-25 09:09:56.000000000","message":"[...]\n\n \u003e I think you should revert this block, preserve the comment block at\n \u003e 7035-7041, and just change 7045 to be \"device_names \u003d None\"\n\nAlso, I\u0027d think that should be an empty dict, i.e. \"device_names \u003d []\".","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c69d58e1d2dc8f8149c4cd34640aa2ca933965e5","unresolved":false,"context_lines":[{"line_number":7039,"context_line":"            if CONF.serial_console.enabled:"},{"line_number":7040,"context_line":"                serial_ports \u003d list(self._get_serial_ports_from_guest(guest))"},{"line_number":7041,"context_line":""},{"line_number":7042,"context_line":"            migrate_disks \u003d None"},{"line_number":7043,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7044,"context_line":"                    migrate_disks"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"            LOG.debug(\"About to invoke the migrate API\", instance\u003dinstance)"},{"line_number":7047,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7048,"context_line":"                          migrate_uri\u003dmigrate_uri,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_26d09ff4","line":7045,"range":{"start_line":7042,"start_character":0,"end_line":7045,"end_character":0},"in_reply_to":"5f7c97a3_46a049a5","updated":"2018-07-25 07:18:38.000000000","message":"I would have also moved all this block in guest.migrate() and it would be great to have a log.debug or info","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"d43ce9c93c0b4a8f00738322097c17173016bc11","unresolved":false,"context_lines":[{"line_number":7039,"context_line":"            if CONF.serial_console.enabled:"},{"line_number":7040,"context_line":"                serial_ports \u003d list(self._get_serial_ports_from_guest(guest))"},{"line_number":7041,"context_line":""},{"line_number":7042,"context_line":"            migrate_disks \u003d None"},{"line_number":7043,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7044,"context_line":"                    migrate_disks"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"            LOG.debug(\"About to invoke the migrate API\", instance\u003dinstance)"},{"line_number":7047,"context_line":"            guest.migrate(self._live_migration_uri(dest),"},{"line_number":7048,"context_line":"                          migrate_uri\u003dmigrate_uri,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_4b1fdb59","line":7045,"range":{"start_line":7042,"start_character":0,"end_line":7045,"end_character":0},"in_reply_to":"5f7c97a3_bf7032a9","updated":"2018-07-25 12:49:54.000000000","message":"Matt, as discussed on IRC (#openstack-nova), moving to guest.migrate() can be done as a separate change:\n\n\u003c mdbooth\u003e kashyap: I think moving to guest.migrate() is better, but if you discussed that already and decided to put it in a later change I\u0027m ok with that.","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5120fdb75a76eaf0b9bea4b3ed78a223043ef808","unresolved":false,"context_lines":[{"line_number":7077,"context_line":"            # cannot fallback to migrateToURI2 in this case because of"},{"line_number":7078,"context_line":"            # bug #1398999"},{"line_number":7079,"context_line":"            #"},{"line_number":7080,"context_line":"            # TODO(kchamart) Move the following bit to guest.migrate()"},{"line_number":7081,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7082,"context_line":"                device_names \u003d []"},{"line_number":7083,"context_line":""},{"line_number":7084,"context_line":"            # TODO(sahid): This should be in"},{"line_number":7085,"context_line":"            # post_live_migration_at_source but no way to retrieve"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_b6d781c0","line":7082,"range":{"start_line":7080,"start_character":0,"end_line":7082,"end_character":33},"updated":"2018-07-31 14:15:57.000000000","message":"We don\u0027t have any assertion for this in test_driver.py.","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"bdde965717b527828b0d04bc6999d631485d8fe2","unresolved":false,"context_lines":[{"line_number":7077,"context_line":"            # cannot fallback to migrateToURI2 in this case because of"},{"line_number":7078,"context_line":"            # bug #1398999"},{"line_number":7079,"context_line":"            #"},{"line_number":7080,"context_line":"            # TODO(kchamart) Move the following bit to guest.migrate()"},{"line_number":7081,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_TUNNELLED !\u003d 0):"},{"line_number":7082,"context_line":"                device_names \u003d []"},{"line_number":7083,"context_line":""},{"line_number":7084,"context_line":"            # TODO(sahid): This should be in"},{"line_number":7085,"context_line":"            # post_live_migration_at_source but no way to retrieve"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_8f4d8494","line":7082,"range":{"start_line":7080,"start_character":0,"end_line":7082,"end_character":33},"in_reply_to":"5f7c97a3_b6d781c0","updated":"2018-07-31 15:45:39.000000000","message":"Will add one in test_block_live_migration_tunnelled_migrateToURI3()","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"}],"nova/virt/libvirt/guest.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a9d71333a2656693dc9b7e51e3822769b669d64e","unresolved":false,"context_lines":[{"line_number":639,"context_line":"            self._domain.migrateToURI("},{"line_number":640,"context_line":"                destination, flags\u003dflags, bandwidth\u003dbandwidth)"},{"line_number":641,"context_line":"        else:"},{"line_number":642,"context_line":"            if params:"},{"line_number":643,"context_line":"                # Due to a quirk in the libvirt python bindings,"},{"line_number":644,"context_line":"                # VIR_MIGRATE_NON_SHARED_INC with an empty migrate_disks is"},{"line_number":645,"context_line":"                # interpreted as \"block migrate all writable disks\" rather than"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_3c52753c","line":642,"range":{"start_line":642,"start_character":12,"end_line":642,"end_character":21},"updated":"2018-05-14 16:50:27.000000000","message":"This change makes params non-optional -- so I think we have to remove the None default at least? Otherwise if someone calls this with params\u003dNone, no migrate will occur.","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"33a4afbd6c986f75965f57cc6f9a8cbe58d618c1","unresolved":false,"context_lines":[{"line_number":639,"context_line":"            self._domain.migrateToURI("},{"line_number":640,"context_line":"                destination, flags\u003dflags, bandwidth\u003dbandwidth)"},{"line_number":641,"context_line":"        else:"},{"line_number":642,"context_line":"            if params:"},{"line_number":643,"context_line":"                # Due to a quirk in the libvirt python bindings,"},{"line_number":644,"context_line":"                # VIR_MIGRATE_NON_SHARED_INC with an empty migrate_disks is"},{"line_number":645,"context_line":"                # interpreted as \"block migrate all writable disks\" rather than"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_2901baaf","line":642,"range":{"start_line":642,"start_character":12,"end_line":642,"end_character":21},"in_reply_to":"5f7c97a3_3c52753c","updated":"2018-05-15 13:16:00.000000000","message":"Yes, you (and Chris) are right.  We should also remove the older migrateToURI().","commit_id":"832bdb9c70373faa41e6855cc6df4e492c0696ad"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0da1c93083662a274a0490c76e47397d190974e6","unresolved":false,"context_lines":[{"line_number":632,"context_line":"           VIR_MIGRATE_UNSAFE Force migration even if it is considered"},{"line_number":633,"context_line":"                              unsafe."},{"line_number":634,"context_line":"           VIR_MIGRATE_OFFLINE Migrate offline"},{"line_number":635,"context_line":"        :param domain_xml: Changing guest configuration during migration"},{"line_number":636,"context_line":"        :param bandwidth: The maximun bandwidth in MiB/s"},{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        if not params:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_aa09452b","line":635,"range":{"start_line":635,"start_character":0,"end_line":635,"end_character":72},"updated":"2018-05-31 10:57:45.000000000","message":"I assume this can go now? If so, can you add a TODO to remove it, please? (Or remove it here)","commit_id":"fe02bb6b5471b4a6a60c974780631e74d63f8231"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"75f3ceee5b66436f9bd328fcadcd00121af05521","unresolved":false,"context_lines":[{"line_number":632,"context_line":"           VIR_MIGRATE_UNSAFE Force migration even if it is considered"},{"line_number":633,"context_line":"                              unsafe."},{"line_number":634,"context_line":"           VIR_MIGRATE_OFFLINE Migrate offline"},{"line_number":635,"context_line":"        :param domain_xml: Changing guest configuration during migration"},{"line_number":636,"context_line":"        :param bandwidth: The maximun bandwidth in MiB/s"},{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        if not params:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_6828f931","line":635,"range":{"start_line":635,"start_character":0,"end_line":635,"end_character":72},"in_reply_to":"5f7c97a3_88ea350c","updated":"2018-06-01 19:01:25.000000000","message":"I think it\u0027d be okay to add a todo here and remove in a follow-on patch.  Let\u0027s get something merged. :)","commit_id":"fe02bb6b5471b4a6a60c974780631e74d63f8231"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"63dc21423614a2b8610d38305c2294a0396d6651","unresolved":false,"context_lines":[{"line_number":632,"context_line":"           VIR_MIGRATE_UNSAFE Force migration even if it is considered"},{"line_number":633,"context_line":"                              unsafe."},{"line_number":634,"context_line":"           VIR_MIGRATE_OFFLINE Migrate offline"},{"line_number":635,"context_line":"        :param domain_xml: Changing guest configuration during migration"},{"line_number":636,"context_line":"        :param bandwidth: The maximun bandwidth in MiB/s"},{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        if not params:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_88ea350c","line":635,"range":{"start_line":635,"start_character":0,"end_line":635,"end_character":72},"in_reply_to":"5f7c97a3_aa09452b","updated":"2018-06-01 18:49:31.000000000","message":"Hmm, I think it can go, as long as no one depending on the \"stability\" of it.  (And I also need to fix the following tests, if I remove \u0027domain_xml\u0027):\n\ntest_block_live_migration_tunnelled_migrateToURI3()\ntest_live_migration_block_migration_with_devices()\ntest_live_migration_update_serial_console_xml()\ntest_live_migration_update_volume_xml()\ntest_live_migration_raises_exception()\ntest_live_migration_block_migration_all_filtered()\ntest_live_migration_update_graphics_xml()\ntest_live_migration_uses_migrateToURI3()\ntest_live_migration_with_valid_target_connect_addr()\ntest_live_migration_parallels_no_new_xml()\ntest_migrate_v3_unicode()\ntest_migrate_v3()","commit_id":"fe02bb6b5471b4a6a60c974780631e74d63f8231"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0da1c93083662a274a0490c76e47397d190974e6","unresolved":false,"context_lines":[{"line_number":633,"context_line":"                              unsafe."},{"line_number":634,"context_line":"           VIR_MIGRATE_OFFLINE Migrate offline"},{"line_number":635,"context_line":"        :param domain_xml: Changing guest configuration during migration"},{"line_number":636,"context_line":"        :param bandwidth: The maximun bandwidth in MiB/s"},{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        if not params:"},{"line_number":639,"context_line":"            params \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4a143144","line":636,"range":{"start_line":636,"start_character":30,"end_line":636,"end_character":37},"updated":"2018-05-31 10:57:45.000000000","message":"While you\u0027re fixing the above - s/maximun/maximum/","commit_id":"fe02bb6b5471b4a6a60c974780631e74d63f8231"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"63dc21423614a2b8610d38305c2294a0396d6651","unresolved":false,"context_lines":[{"line_number":633,"context_line":"                              unsafe."},{"line_number":634,"context_line":"           VIR_MIGRATE_OFFLINE Migrate offline"},{"line_number":635,"context_line":"        :param domain_xml: Changing guest configuration during migration"},{"line_number":636,"context_line":"        :param bandwidth: The maximun bandwidth in MiB/s"},{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        if not params:"},{"line_number":639,"context_line":"            params \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_a8edb125","line":636,"range":{"start_line":636,"start_character":30,"end_line":636,"end_character":37},"in_reply_to":"5f7c97a3_4a143144","updated":"2018-06-01 18:49:31.000000000","message":"Will take care.","commit_id":"fe02bb6b5471b4a6a60c974780631e74d63f8231"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"db8b61c974d89800e9efacc6d6191a0f7ec9a91e","unresolved":false,"context_lines":[{"line_number":599,"context_line":"        \"\"\""},{"line_number":600,"context_line":"        self._domain.suspend()"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def migrate(self, destination, migrate_uri\u003dNone, params\u003dNone, flags\u003d0,"},{"line_number":603,"context_line":"                bandwidth\u003d0):"},{"line_number":604,"context_line":"        \"\"\"Migrate guest object from its current host to the destination"},{"line_number":605,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_0174adcf","line":602,"range":{"start_line":602,"start_character":53,"end_line":602,"end_character":64},"updated":"2018-06-04 09:31:21.000000000","message":"I would have removed that argument and passed, \u0027migrate_disks\u0027 and \u0027destinations_xml\u0027 instead.","commit_id":"9f9a5ba31d7e604f47854c8892112102826ab116"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"5b528c33430ae7a4c3224f78ad11354f69179537","unresolved":false,"context_lines":[{"line_number":599,"context_line":"        \"\"\""},{"line_number":600,"context_line":"        self._domain.suspend()"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def migrate(self, destination, migrate_uri\u003dNone, params\u003dNone, flags\u003d0,"},{"line_number":603,"context_line":"                bandwidth\u003d0):"},{"line_number":604,"context_line":"        \"\"\"Migrate guest object from its current host to the destination"},{"line_number":605,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_949d5dbd","line":602,"range":{"start_line":602,"start_character":53,"end_line":602,"end_character":64},"in_reply_to":"5f7c97a3_0174adcf","updated":"2018-06-04 10:02:10.000000000","message":"+1. Unless we\u0027re doing something like allowing operators to pass random stuff in here, then we should already know about all the parameter we support, so we might as well enumerate them.\n\nAgree we\u0027d be better off without a random dict of unknowingness.","commit_id":"9f9a5ba31d7e604f47854c8892112102826ab116"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"16abd2b56edcadb8210753a8c909da399e090a97","unresolved":false,"context_lines":[{"line_number":599,"context_line":"        \"\"\""},{"line_number":600,"context_line":"        self._domain.suspend()"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def migrate(self, destination, migrate_uri\u003dNone, params\u003dNone, flags\u003d0,"},{"line_number":603,"context_line":"                bandwidth\u003d0):"},{"line_number":604,"context_line":"        \"\"\"Migrate guest object from its current host to the destination"},{"line_number":605,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_37a24bfe","line":602,"range":{"start_line":602,"start_character":53,"end_line":602,"end_character":64},"in_reply_to":"5f7c97a3_949d5dbd","updated":"2018-06-04 10:28:22.000000000","message":"That is how we have designed all the methods of Guest class. We should keep that convention.","commit_id":"9f9a5ba31d7e604f47854c8892112102826ab116"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3e88681b75aa7c554d9a2e72fb9a810bf6629a1d","unresolved":false,"context_lines":[{"line_number":607,"context_line":"        :param migrate_uri: URI for invoking the migration"},{"line_number":608,"context_line":"        :param params: Optional \u0027dict\u0027 containing migration parameters."},{"line_number":609,"context_line":"         List of valid values:"},{"line_number":610,"context_line":"           \"auto_converge.increment\""},{"line_number":611,"context_line":"           \"auto_converge.initial\""},{"line_number":612,"context_line":"           \"bandwidth\""},{"line_number":613,"context_line":"           \"compression\""},{"line_number":614,"context_line":"           \"compression.mt.dthreads\""},{"line_number":615,"context_line":"           \"compression.mt.level\""},{"line_number":616,"context_line":"           \"compression.mt.threads\""},{"line_number":617,"context_line":"           \"compression.xbzrle.cache\""},{"line_number":618,"context_line":"           \"destination_name\""},{"line_number":619,"context_line":"           \"destination_xml\""},{"line_number":620,"context_line":"           \"disks_port\""},{"line_number":621,"context_line":"           \"graphics_uri\""},{"line_number":622,"context_line":"           \"listen_address\""},{"line_number":623,"context_line":"           \"migrate_disks\""},{"line_number":624,"context_line":"           \"persistent_xml\""},{"line_number":625,"context_line":"           \"migrate_uri\""},{"line_number":626,"context_line":"        :param flags: May be one of more of the following:"},{"line_number":627,"context_line":"           VIR_MIGRATE_LIVE Do not pause the VM during migration"},{"line_number":628,"context_line":"           VIR_MIGRATE_PEER2PEER Direct connection between source \u0026"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_73322e12","line":625,"range":{"start_line":610,"start_character":10,"end_line":625,"end_character":24},"updated":"2018-06-01 20:38:48.000000000","message":"Is this list documented somewhere outside of the code?  I didn\u0027t find anything useful at https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainMigrateToURI3","commit_id":"9f9a5ba31d7e604f47854c8892112102826ab116"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"db8b61c974d89800e9efacc6d6191a0f7ec9a91e","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        :param destination: URI of host destination where guest will be migrate"},{"line_number":607,"context_line":"        :param migrate_uri: URI for invoking the migration"},{"line_number":608,"context_line":"        :param params: Optional \u0027dict\u0027 containing migration parameters."},{"line_number":609,"context_line":"         List of valid values:"},{"line_number":610,"context_line":"           \"auto_converge.increment\""},{"line_number":611,"context_line":"           \"auto_converge.initial\""},{"line_number":612,"context_line":"           \"bandwidth\""},{"line_number":613,"context_line":"           \"compression\""},{"line_number":614,"context_line":"           \"compression.mt.dthreads\""},{"line_number":615,"context_line":"           \"compression.mt.level\""},{"line_number":616,"context_line":"           \"compression.mt.threads\""},{"line_number":617,"context_line":"           \"compression.xbzrle.cache\""},{"line_number":618,"context_line":"           \"destination_name\""},{"line_number":619,"context_line":"           \"destination_xml\""},{"line_number":620,"context_line":"           \"disks_port\""},{"line_number":621,"context_line":"           \"graphics_uri\""},{"line_number":622,"context_line":"           \"listen_address\""},{"line_number":623,"context_line":"           \"migrate_disks\""},{"line_number":624,"context_line":"           \"persistent_xml\""},{"line_number":625,"context_line":"           \"migrate_uri\""},{"line_number":626,"context_line":"        :param flags: May be one of more of the following:"},{"line_number":627,"context_line":"           VIR_MIGRATE_LIVE Do not pause the VM during migration"},{"line_number":628,"context_line":"           VIR_MIGRATE_PEER2PEER Direct connection between source \u0026"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_215a0950","line":625,"range":{"start_line":609,"start_character":3,"end_line":625,"end_character":24},"updated":"2018-06-04 09:31:21.000000000","message":"No need of this list, we should passe the ones that we need as parameters of guest.migrate().\n\nThen the method will generate the params dict which will be passed to migrateToURI3()","commit_id":"9f9a5ba31d7e604f47854c8892112102826ab116"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"42183abd0dec5db0227af6bdfba5758f7a906fcd","unresolved":false,"context_lines":[{"line_number":607,"context_line":"        :param migrate_uri: URI for invoking the migration"},{"line_number":608,"context_line":"        :param params: Optional \u0027dict\u0027 containing migration parameters."},{"line_number":609,"context_line":"         List of valid values:"},{"line_number":610,"context_line":"           \"auto_converge.increment\""},{"line_number":611,"context_line":"           \"auto_converge.initial\""},{"line_number":612,"context_line":"           \"bandwidth\""},{"line_number":613,"context_line":"           \"compression\""},{"line_number":614,"context_line":"           \"compression.mt.dthreads\""},{"line_number":615,"context_line":"           \"compression.mt.level\""},{"line_number":616,"context_line":"           \"compression.mt.threads\""},{"line_number":617,"context_line":"           \"compression.xbzrle.cache\""},{"line_number":618,"context_line":"           \"destination_name\""},{"line_number":619,"context_line":"           \"destination_xml\""},{"line_number":620,"context_line":"           \"disks_port\""},{"line_number":621,"context_line":"           \"graphics_uri\""},{"line_number":622,"context_line":"           \"listen_address\""},{"line_number":623,"context_line":"           \"migrate_disks\""},{"line_number":624,"context_line":"           \"persistent_xml\""},{"line_number":625,"context_line":"           \"migrate_uri\""},{"line_number":626,"context_line":"        :param flags: May be one of more of the following:"},{"line_number":627,"context_line":"           VIR_MIGRATE_LIVE Do not pause the VM during migration"},{"line_number":628,"context_line":"           VIR_MIGRATE_PEER2PEER Direct connection between source \u0026"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_bea87820","line":625,"range":{"start_line":610,"start_character":10,"end_line":625,"end_character":24},"in_reply_to":"5f7c97a3_73322e12","updated":"2018-06-04 08:39:28.000000000","message":"They are documented here, refer to all the VIR_MIGRATE_PARAM_*: \n\nhttps://libvirt.org/html/libvirt-libvirt-domain.html#VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT\n\nI also see a pointer \"See VIR_MIGRATE_PARAM_*\" in the virDomainMigrateToURI3() API.  Maybe it could be made clearer.","commit_id":"9f9a5ba31d7e604f47854c8892112102826ab116"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3d388a19cf4b1453459916b83ea872cf6609e9ad","unresolved":false,"context_lines":[{"line_number":607,"context_line":"        :param migrate_uri: URI for invoking the migration"},{"line_number":608,"context_line":"        :param params: Optional \u0027dict\u0027 containing migration parameters."},{"line_number":609,"context_line":"         List of valid values:"},{"line_number":610,"context_line":"           \"auto_converge.increment\""},{"line_number":611,"context_line":"           \"auto_converge.initial\""},{"line_number":612,"context_line":"           \"bandwidth\""},{"line_number":613,"context_line":"           \"compression\""},{"line_number":614,"context_line":"           \"compression.mt.dthreads\""},{"line_number":615,"context_line":"           \"compression.mt.level\""},{"line_number":616,"context_line":"           \"compression.mt.threads\""},{"line_number":617,"context_line":"           \"compression.xbzrle.cache\""},{"line_number":618,"context_line":"           \"destination_name\""},{"line_number":619,"context_line":"           \"destination_xml\""},{"line_number":620,"context_line":"           \"disks_port\""},{"line_number":621,"context_line":"           \"graphics_uri\""},{"line_number":622,"context_line":"           \"listen_address\""},{"line_number":623,"context_line":"           \"migrate_disks\""},{"line_number":624,"context_line":"           \"persistent_xml\""},{"line_number":625,"context_line":"           \"migrate_uri\""},{"line_number":626,"context_line":"        :param flags: May be one of more of the following:"},{"line_number":627,"context_line":"           VIR_MIGRATE_LIVE Do not pause the VM during migration"},{"line_number":628,"context_line":"           VIR_MIGRATE_PEER2PEER Direct connection between source \u0026"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_6337a14f","line":625,"range":{"start_line":610,"start_character":10,"end_line":625,"end_character":24},"in_reply_to":"5f7c97a3_bea87820","updated":"2018-06-04 14:10:51.000000000","message":"\u003e They are documented here, refer to all the VIR_MIGRATE_PARAM_*:\n \u003e \n \u003e https://libvirt.org/html/libvirt-libvirt-domain.html#VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT\n\nAh, now I see it.  I had just looked down at the actual parameters section and kind of skimmed over the function description.","commit_id":"9f9a5ba31d7e604f47854c8892112102826ab116"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"852de5c57554d45b074f86e8ae155741401aab5b","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        :param destination: URI of host destination where guest will be migrate"},{"line_number":607,"context_line":"        :param migrate_uri: URI for invoking the migration"},{"line_number":608,"context_line":"        :param params: Optional \u0027dict\u0027 containing migration parameters."},{"line_number":609,"context_line":"         List of valid values:"},{"line_number":610,"context_line":"           \"auto_converge.increment\""},{"line_number":611,"context_line":"           \"auto_converge.initial\""},{"line_number":612,"context_line":"           \"bandwidth\""},{"line_number":613,"context_line":"           \"compression\""},{"line_number":614,"context_line":"           \"compression.mt.dthreads\""},{"line_number":615,"context_line":"           \"compression.mt.level\""},{"line_number":616,"context_line":"           \"compression.mt.threads\""},{"line_number":617,"context_line":"           \"compression.xbzrle.cache\""},{"line_number":618,"context_line":"           \"destination_name\""},{"line_number":619,"context_line":"           \"destination_xml\""},{"line_number":620,"context_line":"           \"disks_port\""},{"line_number":621,"context_line":"           \"graphics_uri\""},{"line_number":622,"context_line":"           \"listen_address\""},{"line_number":623,"context_line":"           \"migrate_disks\""},{"line_number":624,"context_line":"           \"persistent_xml\""},{"line_number":625,"context_line":"           \"migrate_uri\""},{"line_number":626,"context_line":"        :param flags: May be one of more of the following:"},{"line_number":627,"context_line":"           VIR_MIGRATE_LIVE Do not pause the VM during migration"},{"line_number":628,"context_line":"           VIR_MIGRATE_PEER2PEER Direct connection between source \u0026"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_b00d3890","line":625,"range":{"start_line":609,"start_character":0,"end_line":625,"end_character":24},"updated":"2018-06-13 07:04:50.000000000","message":"No need of all of that. As discussed previously we should pass to Guest only arguments that are necessary.\n\nSo basically you need to remove \u0027params\u0027 and pass \u0027migrate_uri\u0027 instead.","commit_id":"3ded90d720bdf255cf751d72ddea4594b32fbd19"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"15fbc2dbd921bcb4650947f30db0c7286bb9f78a","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        :param destination: URI of host destination where guest will be migrate"},{"line_number":607,"context_line":"        :param migrate_uri: URI for invoking the migration"},{"line_number":608,"context_line":"        :param params: Optional \u0027dict\u0027 containing migration parameters."},{"line_number":609,"context_line":"         List of valid values:"},{"line_number":610,"context_line":"           \"auto_converge.increment\""},{"line_number":611,"context_line":"           \"auto_converge.initial\""},{"line_number":612,"context_line":"           \"bandwidth\""},{"line_number":613,"context_line":"           \"compression\""},{"line_number":614,"context_line":"           \"compression.mt.dthreads\""},{"line_number":615,"context_line":"           \"compression.mt.level\""},{"line_number":616,"context_line":"           \"compression.mt.threads\""},{"line_number":617,"context_line":"           \"compression.xbzrle.cache\""},{"line_number":618,"context_line":"           \"destination_name\""},{"line_number":619,"context_line":"           \"destination_xml\""},{"line_number":620,"context_line":"           \"disks_port\""},{"line_number":621,"context_line":"           \"graphics_uri\""},{"line_number":622,"context_line":"           \"listen_address\""},{"line_number":623,"context_line":"           \"migrate_disks\""},{"line_number":624,"context_line":"           \"persistent_xml\""},{"line_number":625,"context_line":"           \"migrate_uri\""},{"line_number":626,"context_line":"        :param flags: May be one of more of the following:"},{"line_number":627,"context_line":"           VIR_MIGRATE_LIVE Do not pause the VM during migration"},{"line_number":628,"context_line":"           VIR_MIGRATE_PEER2PEER Direct connection between source \u0026"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_fdd2a45b","line":625,"range":{"start_line":609,"start_character":0,"end_line":625,"end_character":24},"in_reply_to":"5f7c97a3_5abddeae","updated":"2018-06-13 09:23:40.000000000","message":"\u003e I think you meant: passing both: \u0027migrate_uri\u0027 \n\nErr, s/migrate_uri/migrated_disks/\n\n\u003e and \u0027destination_xml\u0027","commit_id":"3ded90d720bdf255cf751d72ddea4594b32fbd19"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b8e4fe82ce7ef286ff8591fd6012aa4d0653dbab","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        :param destination: URI of host destination where guest will be migrate"},{"line_number":607,"context_line":"        :param migrate_uri: URI for invoking the migration"},{"line_number":608,"context_line":"        :param params: Optional \u0027dict\u0027 containing migration parameters."},{"line_number":609,"context_line":"         List of valid values:"},{"line_number":610,"context_line":"           \"auto_converge.increment\""},{"line_number":611,"context_line":"           \"auto_converge.initial\""},{"line_number":612,"context_line":"           \"bandwidth\""},{"line_number":613,"context_line":"           \"compression\""},{"line_number":614,"context_line":"           \"compression.mt.dthreads\""},{"line_number":615,"context_line":"           \"compression.mt.level\""},{"line_number":616,"context_line":"           \"compression.mt.threads\""},{"line_number":617,"context_line":"           \"compression.xbzrle.cache\""},{"line_number":618,"context_line":"           \"destination_name\""},{"line_number":619,"context_line":"           \"destination_xml\""},{"line_number":620,"context_line":"           \"disks_port\""},{"line_number":621,"context_line":"           \"graphics_uri\""},{"line_number":622,"context_line":"           \"listen_address\""},{"line_number":623,"context_line":"           \"migrate_disks\""},{"line_number":624,"context_line":"           \"persistent_xml\""},{"line_number":625,"context_line":"           \"migrate_uri\""},{"line_number":626,"context_line":"        :param flags: May be one of more of the following:"},{"line_number":627,"context_line":"           VIR_MIGRATE_LIVE Do not pause the VM during migration"},{"line_number":628,"context_line":"           VIR_MIGRATE_PEER2PEER Direct connection between source \u0026"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_5abddeae","line":625,"range":{"start_line":609,"start_character":0,"end_line":625,"end_character":24},"in_reply_to":"5f7c97a3_b00d3890","updated":"2018-06-13 09:21:27.000000000","message":"\u003e No need of all of that. As discussed previously we should pass to\n \u003e Guest only arguments that are necessary.\n\nYep, I\u0027m going to remove that and resubmit.\n\n \u003e \n \u003e So basically you need to remove \u0027params\u0027 and pass \u0027migrate_uri\u0027\n \u003e instead.\n\nI think you meant: passing both: \u0027migrate_uri\u0027 and \u0027destination_xml\u0027","commit_id":"3ded90d720bdf255cf751d72ddea4594b32fbd19"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"06e4372d2112d0a9c975f32a287c30eb806f4368","unresolved":false,"context_lines":[{"line_number":643,"context_line":"        params[\u0027bandwidth\u0027] \u003d bandwidth"},{"line_number":644,"context_line":"        params[\u0027migrate_disks\u0027] \u003d migrate_disks"},{"line_number":645,"context_line":"        params[\u0027destination_xml\u0027] \u003d destination_xml"},{"line_number":646,"context_line":"        params[\u0027migrate_uri\u0027] \u003d migrate_uri"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"        # Due to a quirk in the libvirt python bindings,"},{"line_number":649,"context_line":"        # VIR_MIGRATE_NON_SHARED_INC with an empty migrate_disks is"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_5fd23e61","line":646,"updated":"2018-07-25 10:38:11.000000000","message":"Super-nit: I\u0027d personally initialise these together.","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"d43ce9c93c0b4a8f00738322097c17173016bc11","unresolved":false,"context_lines":[{"line_number":643,"context_line":"        params[\u0027bandwidth\u0027] \u003d bandwidth"},{"line_number":644,"context_line":"        params[\u0027migrate_disks\u0027] \u003d migrate_disks"},{"line_number":645,"context_line":"        params[\u0027destination_xml\u0027] \u003d destination_xml"},{"line_number":646,"context_line":"        params[\u0027migrate_uri\u0027] \u003d migrate_uri"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"        # Due to a quirk in the libvirt python bindings,"},{"line_number":649,"context_line":"        # VIR_MIGRATE_NON_SHARED_INC with an empty migrate_disks is"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_0b080323","line":646,"in_reply_to":"5f7c97a3_5fd23e61","updated":"2018-07-25 12:49:54.000000000","message":"I guess you mean something like this:\n\n    params \u003d {\u0027bandwith\u0027: bandwidth,\n              \u0027migrate_disks\u0027: migrate_disks,\n              \u0027destination_xml\u0027: destination_xml,\n              \u0027migrate_uri\u0027: migrate_uri\n             }","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"06e4372d2112d0a9c975f32a287c30eb806f4368","unresolved":false,"context_lines":[{"line_number":660,"context_line":"        # In the python2 libvirt bindings, strings passed to"},{"line_number":661,"context_line":"        # migrateToURI3 via params must not be unicode."},{"line_number":662,"context_line":"        if six.PY2:"},{"line_number":663,"context_line":"            params \u003d {key: str(value) if isinstance(value, unicode)  # noqa"},{"line_number":664,"context_line":"                                      else value"},{"line_number":665,"context_line":"                      for key, value in params.items()}"},{"line_number":666,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_1572674b","line":663,"range":{"start_line":663,"start_character":69,"end_line":663,"end_character":75},"updated":"2018-07-25 10:38:11.000000000","message":"nit: Can we \u0027undent\u0027 this now?","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"d43ce9c93c0b4a8f00738322097c17173016bc11","unresolved":false,"context_lines":[{"line_number":660,"context_line":"        # In the python2 libvirt bindings, strings passed to"},{"line_number":661,"context_line":"        # migrateToURI3 via params must not be unicode."},{"line_number":662,"context_line":"        if six.PY2:"},{"line_number":663,"context_line":"            params \u003d {key: str(value) if isinstance(value, unicode)  # noqa"},{"line_number":664,"context_line":"                                      else value"},{"line_number":665,"context_line":"                      for key, value in params.items()}"},{"line_number":666,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_8b25f3af","line":663,"range":{"start_line":663,"start_character":69,"end_line":663,"end_character":75},"in_reply_to":"5f7c97a3_1572674b","updated":"2018-07-25 12:49:54.000000000","message":"Yep.","commit_id":"7822e9e24a84cd933f10b0690bdced8c16e004c8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9f81c5c66a207f6591ecd93d2b97653a33703312","unresolved":false,"context_lines":[{"line_number":658,"context_line":""},{"line_number":659,"context_line":"                # In migrateToURI3 these parameters are extracted from the"},{"line_number":660,"context_line":"                # `params` dict"},{"line_number":661,"context_line":"                if migrate_uri:"},{"line_number":662,"context_line":"                    params[\u0027migrate_uri\u0027] \u003d migrate_uri"},{"line_number":663,"context_line":"                params[\u0027bandwidth\u0027] \u003d bandwidth"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"                # In the python2 libvirt bindings, strings passed to"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_552c03b1","side":"PARENT","line":662,"range":{"start_line":661,"start_character":16,"end_line":662,"end_character":55},"updated":"2018-07-30 12:28:11.000000000","message":"this is now also uncondtional. perhaps that is the issue.","commit_id":"bf497cc47497d3a5603bf60de652054ac5ae1993"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0bc550fe0413b7dc69722303a817c30b95f096c6","unresolved":false,"context_lines":[{"line_number":636,"context_line":"           VIR_MIGRATE_UNSAFE Force migration even if it is considered"},{"line_number":637,"context_line":"                              unsafe."},{"line_number":638,"context_line":"           VIR_MIGRATE_OFFLINE Migrate offline"},{"line_number":639,"context_line":"        :param domain_xml: Changing guest configuration during migration"},{"line_number":640,"context_line":"        :param bandwidth: The maximum bandwidth in MiB/s"},{"line_number":641,"context_line":"        \"\"\""},{"line_number":642,"context_line":"        params \u003d {}"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_07cde22d","line":639,"range":{"start_line":639,"start_character":15,"end_line":639,"end_character":25},"updated":"2018-07-31 13:47:22.000000000","message":"I think this is removed","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5120fdb75a76eaf0b9bea4b3ed78a223043ef808","unresolved":false,"context_lines":[{"line_number":636,"context_line":"           VIR_MIGRATE_UNSAFE Force migration even if it is considered"},{"line_number":637,"context_line":"                              unsafe."},{"line_number":638,"context_line":"           VIR_MIGRATE_OFFLINE Migrate offline"},{"line_number":639,"context_line":"        :param domain_xml: Changing guest configuration during migration"},{"line_number":640,"context_line":"        :param bandwidth: The maximum bandwidth in MiB/s"},{"line_number":641,"context_line":"        \"\"\""},{"line_number":642,"context_line":"        params \u003d {}"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_f6e2d99b","line":639,"range":{"start_line":639,"start_character":15,"end_line":639,"end_character":25},"in_reply_to":"5f7c97a3_07cde22d","updated":"2018-07-31 14:15:57.000000000","message":"Yes right","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"bdde965717b527828b0d04bc6999d631485d8fe2","unresolved":false,"context_lines":[{"line_number":636,"context_line":"           VIR_MIGRATE_UNSAFE Force migration even if it is considered"},{"line_number":637,"context_line":"                              unsafe."},{"line_number":638,"context_line":"           VIR_MIGRATE_OFFLINE Migrate offline"},{"line_number":639,"context_line":"        :param domain_xml: Changing guest configuration during migration"},{"line_number":640,"context_line":"        :param bandwidth: The maximum bandwidth in MiB/s"},{"line_number":641,"context_line":"        \"\"\""},{"line_number":642,"context_line":"        params \u003d {}"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_6f27c8c9","line":639,"range":{"start_line":639,"start_character":15,"end_line":639,"end_character":25},"in_reply_to":"5f7c97a3_f6e2d99b","updated":"2018-07-31 15:45:39.000000000","message":"Will fix in next iteration.","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5120fdb75a76eaf0b9bea4b3ed78a223043ef808","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                not params.get(\u0027migrate_disks\u0027)):"},{"line_number":664,"context_line":"            flags \u0026\u003d ~libvirt.VIR_MIGRATE_NON_SHARED_INC"},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"        # In the Python2 libvirt bindings, strings passed to"},{"line_number":667,"context_line":"        # migrateToURI3 via params must not be unicode."},{"line_number":668,"context_line":"        if six.PY2:"},{"line_number":669,"context_line":"            params \u003d {key: str(value) if isinstance(value, unicode)  # noqa"},{"line_number":670,"context_line":"                                      else value"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_b68541b0","line":667,"range":{"start_line":666,"start_character":1,"end_line":667,"end_character":55},"updated":"2018-07-31 14:15:57.000000000","message":"I know that it\u0027s out of scope of this patch but migrate_disks will be a list of string. We don\u0027t handle that case.","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"bdde965717b527828b0d04bc6999d631485d8fe2","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                not params.get(\u0027migrate_disks\u0027)):"},{"line_number":664,"context_line":"            flags \u0026\u003d ~libvirt.VIR_MIGRATE_NON_SHARED_INC"},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"        # In the Python2 libvirt bindings, strings passed to"},{"line_number":667,"context_line":"        # migrateToURI3 via params must not be unicode."},{"line_number":668,"context_line":"        if six.PY2:"},{"line_number":669,"context_line":"            params \u003d {key: str(value) if isinstance(value, unicode)  # noqa"},{"line_number":670,"context_line":"                                      else value"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_0f109457","line":667,"range":{"start_line":666,"start_character":1,"end_line":667,"end_character":55},"in_reply_to":"5f7c97a3_b68541b0","updated":"2018-07-31 15:45:39.000000000","message":"Right, that needs to be handled as a separate patch.","commit_id":"94baf1568bf0ad50575243d11903e65938879cfb"}]}
