)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":5542,"context_line":"        if not got_migrate_data_object:"},{"line_number":5543,"context_line":"            migrate_data \u003d \\"},{"line_number":5544,"context_line":"                migrate_data_obj.LiveMigrateData.detect_implementation("},{"line_number":5545,"context_line":"                    migrate_data)"},{"line_number":5546,"context_line":"        block_device_info \u003d self._get_instance_block_device_info("},{"line_number":5547,"context_line":"                            context, instance, refresh_conn_info\u003dTrue)"},{"line_number":5548,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_8e4e9c94","line":5545,"updated":"2020-01-22 02:36:04.000000000","message":"Note to reviewers re: merge conflict:\n\nHere is where we are don\u0027t have code from change I0bfb11296430dfffe9b091ae7c3a793617bd9d0d in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":5594,"context_line":"        if isinstance(instance, dict):"},{"line_number":5595,"context_line":"            instance_uuid \u003d instance[\u0027uuid\u0027]"},{"line_number":5596,"context_line":"        else:"},{"line_number":5597,"context_line":"            instance_uuid \u003d instance.uuid"},{"line_number":5598,"context_line":"        source_bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":5599,"context_line":"                context, instance_uuid)"},{"line_number":5600,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_c1ea25d7","line":5597,"updated":"2020-01-22 02:36:04.000000000","message":"Note to reviewers: this is needed because _do_live_migration is expected to be able to handle an instance dict in Pike, see:\n\nhttps://review.opendev.org/#/c/683008/6/nova/tests/unit/compute/test_compute_mgr.py","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d826ef945d7131bca90a2b47b54587349773fc6b","unresolved":false,"context_lines":[{"line_number":5642,"context_line":"        LOG.debug(\u0027live_migration data is %s\u0027, migrate_data)"},{"line_number":5643,"context_line":"        try:"},{"line_number":5644,"context_line":"            self.driver.live_migration(context, instance, dest,"},{"line_number":5645,"context_line":"                                       post_live_migration,"},{"line_number":5646,"context_line":"                                       self._rollback_live_migration,"},{"line_number":5647,"context_line":"                                       block_migration, migrate_data)"},{"line_number":5648,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_9db2d795","line":5645,"range":{"start_line":5645,"start_character":39,"end_line":5645,"end_character":59},"updated":"2019-11-15 16:59:57.000000000","message":"the fact we are passing a callback function here and wrapping it with functools.partial is kind of ungly but  it does avoid a change to the virt driver interface so i guess that is ok.\nit will be a bit of a pain to debug but its not terible and enables this to be backported.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":5803,"context_line":""},{"line_number":5804,"context_line":"        # Detaching volumes."},{"line_number":5805,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":5806,"context_line":"        for bdm in source_bdms:"},{"line_number":5807,"context_line":"            # NOTE(vish): We don\u0027t want to actually mark the volume"},{"line_number":5808,"context_line":"            #             detached, or delete the bdm, just remove the"},{"line_number":5809,"context_line":"            #             connection from this host."}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_41add599","line":5806,"updated":"2020-01-22 02:36:04.000000000","message":"Note to reviewers re: merge conflict:\n\nHere is another place where we don\u0027t have code from change I0bfb11296430dfffe9b091ae7c3a793617bd9d0d in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"afa6a1b7d8ec3b1181d44e864ef1e391f487fc60","unresolved":false,"context_lines":[{"line_number":6375,"context_line":"            get_volume_connector, terminate_connection"},{"line_number":6376,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6377,"context_line":"            get_instance_volume_block_device_info, get_volume_connector,"},{"line_number":6378,"context_line":"            terminate_connection, delete_alloc,"},{"line_number":6379,"context_line":"\u003e\u003e\u003e\u003e\u003e\u003e\u003e 013f421bca... Avoid redundant initialize_connection on source post live migration"},{"line_number":6380,"context_line":"        ):"},{"line_number":6381,"context_line":"            get_volume_connector.return_value \u003d \u0027fake-connector\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_e9835f03","line":6378,"range":{"start_line":6378,"start_character":34,"end_line":6378,"end_character":46},"updated":"2019-09-18 23:49:50.000000000","message":"I think this conflict is due to I9068a5a5b47cef565802a6d58f37777464644100 or something in that series.","commit_id":"105bc55eab6cba14a0e4dfa528ce00d8afd36831"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"9a5c23dadd0ab84958a1eef1c5c341259ebfe938","unresolved":false,"context_lines":[{"line_number":6375,"context_line":"            get_volume_connector, terminate_connection"},{"line_number":6376,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6377,"context_line":"            get_instance_volume_block_device_info, get_volume_connector,"},{"line_number":6378,"context_line":"            terminate_connection, delete_alloc,"},{"line_number":6379,"context_line":"\u003e\u003e\u003e\u003e\u003e\u003e\u003e 013f421bca... Avoid redundant initialize_connection on source post live migration"},{"line_number":6380,"context_line":"        ):"},{"line_number":6381,"context_line":"            get_volume_connector.return_value \u003d \u0027fake-connector\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_3172fc4b","line":6378,"range":{"start_line":6378,"start_character":34,"end_line":6378,"end_character":46},"in_reply_to":"3fa7e38b_e9835f03","updated":"2020-01-20 14:53:00.000000000","message":"Yes, I\u0027ve found this, too. I think you were right, I9068a5a5b47cef565802a6d58f37777464644100 is the cause of the conflict here.","commit_id":"105bc55eab6cba14a0e4dfa528ce00d8afd36831"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":6369,"context_line":"            mock.patch.object(cinder.API, \u0027terminate_connection\u0027)"},{"line_number":6370,"context_line":"        ) as ("},{"line_number":6371,"context_line":"            migrate_instance_start, post_live_migration_at_destination,"},{"line_number":6372,"context_line":"            setup_networks_on_host, clear_events_for_instance,"},{"line_number":6373,"context_line":"            get_instance_volume_block_device_info, get_volume_connector,"},{"line_number":6374,"context_line":"            terminate_connection,"},{"line_number":6375,"context_line":"        ):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_8f4e0f8e","line":6372,"updated":"2020-01-22 02:36:04.000000000","message":"Conflict here is because change I9068a5a5b47cef565802a6d58f37777464644100 is not in Pike","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":6376,"context_line":"            get_volume_connector.return_value \u003d \u0027fake-connector\u0027"},{"line_number":6377,"context_line":""},{"line_number":6378,"context_line":"            self.compute._post_live_migration(c, instance, \u0027dest_host\u0027,"},{"line_number":6379,"context_line":"                                              migrate_data\u003dmock.MagicMock(),"},{"line_number":6380,"context_line":"                                              source_bdms\u003dbdms)"},{"line_number":6381,"context_line":""},{"line_number":6382,"context_line":"            terminate_connection.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_cf064722","line":6379,"range":{"start_line":6379,"start_character":46,"end_line":6379,"end_character":76},"updated":"2020-01-22 02:36:04.000000000","message":"I don\u0027t think this change is supposed to be here. Looks like conflict resolution damage. It\u0027s from I9068a5a5b47cef565802a6d58f37777464644100 which is not in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"afa6a1b7d8ec3b1181d44e864ef1e391f487fc60","unresolved":false,"context_lines":[{"line_number":6192,"context_line":""},{"line_number":6193,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":6194,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6195,"context_line":"    def test_get_neutron_events_for_live_migration_empty(self):"},{"line_number":6196,"context_line":"        \"\"\"Tests the various ways that _get_neutron_events_for_live_migration"},{"line_number":6197,"context_line":"        will return an empty list."},{"line_number":6198,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_a9cfa77d","line":6195,"updated":"2019-09-18 23:49:50.000000000","message":"These conflicts are due to I0f3ab6604d8b79bdb75cf67571e359cfecc039d8.","commit_id":"105bc55eab6cba14a0e4dfa528ce00d8afd36831"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"afa6a1b7d8ec3b1181d44e864ef1e391f487fc60","unresolved":false,"context_lines":[{"line_number":6486,"context_line":""},{"line_number":6487,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":6488,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6489,"context_line":"    def _call_post_live_migration(self, *args, **kwargs):"},{"line_number":6490,"context_line":"        @mock.patch.object(self.compute, \u0027update_available_resource\u0027)"},{"line_number":6491,"context_line":"        @mock.patch.object(self.compute, \u0027compute_rpcapi\u0027)"},{"line_number":6492,"context_line":"        @mock.patch.object(self.compute, \u0027_notify_about_instance_usage\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_89c66b67","line":6489,"updated":"2019-09-18 23:49:50.000000000","message":"These conflicts are due to I9068a5a5b47cef565802a6d58f37777464644100.","commit_id":"105bc55eab6cba14a0e4dfa528ce00d8afd36831"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":6155,"context_line":"                mock_rpc.pre_live_migration.call_args_list[0][0][5],"},{"line_number":6156,"context_line":"                migrate_data_obj.LiveMigrateData)"},{"line_number":6157,"context_line":""},{"line_number":6158,"context_line":"        _test()"},{"line_number":6159,"context_line":""},{"line_number":6160,"context_line":"    @mock.patch.object(objects.ComputeNode,"},{"line_number":6161,"context_line":"                       \u0027get_first_node_by_host_for_old_compat\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_5ad21300","line":6158,"updated":"2020-01-22 02:36:04.000000000","message":"The changes to this method were not needed in Queens because in Queens the test was using a MagicMock as the compute manager. In Pike, the real compute manager is being used and the addition of the get_by_instance_uuid call in this change needs to be mocked in order to avoid a NoDBTestCase database access error in the test.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":6192,"context_line":"                                  migrate_data_obj.LiveMigrateData)"},{"line_number":6193,"context_line":""},{"line_number":6194,"context_line":"        _test()"},{"line_number":6195,"context_line":""},{"line_number":6196,"context_line":"    def test_live_migration_force_complete_succeeded(self):"},{"line_number":6197,"context_line":"        migration \u003d objects.Migration()"},{"line_number":6198,"context_line":"        migration.status \u003d \u0027running\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_ba6227d8","line":6195,"updated":"2020-01-22 02:36:04.000000000","message":"Conflict here is because change I0f3ab6604d8b79bdb75cf67571e359cfecc039d8 is not in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":6345,"context_line":"            self.assertEqual(vm_states.ERROR, self.instance.vm_state)"},{"line_number":6346,"context_line":""},{"line_number":6347,"context_line":"        _do_test()"},{"line_number":6348,"context_line":""},{"line_number":6349,"context_line":"    def _get_migration(self, migration_id, status, migration_type):"},{"line_number":6350,"context_line":"        migration \u003d objects.Migration()"},{"line_number":6351,"context_line":"        migration.id \u003d migration_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_bac8e774","line":6348,"updated":"2020-01-22 02:36:04.000000000","message":"Conflict here is because changes sI9068a5a5b47cef565802a6d58f37777464644100 and I0bfb11296430dfffe9b091ae7c3a793617bd9d0d are not in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"afa6a1b7d8ec3b1181d44e864ef1e391f487fc60","unresolved":false,"context_lines":[{"line_number":11007,"context_line":"        mock_stat.called_once_with(\u0027/test/disk\u0027)"},{"line_number":11008,"context_line":"        mock_get_size.called_once_with(\u0027/test/disk\u0027)"},{"line_number":11009,"context_line":""},{"line_number":11010,"context_line":"    def test_post_live_migration(self):"},{"line_number":11011,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":11012,"context_line":"        vol \u003d {\u0027block_device_mapping\u0027: ["},{"line_number":11013,"context_line":"                  {\u0027connection_info\u0027: {"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_899bcb70","line":11010,"updated":"2019-09-18 23:49:50.000000000","message":"Conflicts in this test are due to I0bfb11296430dfffe9b091ae7c3a793617bd9d0d.","commit_id":"105bc55eab6cba14a0e4dfa528ce00d8afd36831"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":11007,"context_line":"        mock_stat.called_once_with(\u0027/test/disk\u0027)"},{"line_number":11008,"context_line":"        mock_get_size.called_once_with(\u0027/test/disk\u0027)"},{"line_number":11009,"context_line":""},{"line_number":11010,"context_line":"    def test_post_live_migration(self):"},{"line_number":11011,"context_line":"        vol1_conn_info \u003d {\u0027data\u0027: {\u0027test_data\u0027: mock.sentinel.vol1},"},{"line_number":11012,"context_line":"                          \u0027serial\u0027: \u0027fake_serial1\u0027}"},{"line_number":11013,"context_line":"        vol2_conn_info \u003d {\u0027data\u0027: {\u0027test_data\u0027: mock.sentinel.vol1},"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_3af1576b","line":11010,"updated":"2020-01-22 02:36:04.000000000","message":"Conflict here is because I0bfb11296430dfffe9b091ae7c3a793617bd9d0d is not in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":11024,"context_line":"        inst_ref \u003d {\u0027id\u0027: \u0027foo\u0027}"},{"line_number":11025,"context_line":"        cntx \u003d context.get_admin_context()"},{"line_number":11026,"context_line":""},{"line_number":11027,"context_line":"        # Set up the mock expectations"},{"line_number":11028,"context_line":"        @mock.patch.object(driver, \u0027block_device_info_get_mapping\u0027,"},{"line_number":11029,"context_line":"                           return_value\u003dbdi[\u0027block_device_mapping\u0027])"},{"line_number":11030,"context_line":"        @mock.patch.object(drvr, \u0027_disconnect_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_5aff7302","line":11027,"updated":"2020-01-22 02:36:04.000000000","message":"Conflict here is again because I0bfb11296430dfffe9b091ae7c3a793617bd9d0d is not in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":7242,"context_line":"                            migrate_data\u003dNone):"},{"line_number":7243,"context_line":"        # Disconnect from volume server"},{"line_number":7244,"context_line":"        block_device_mapping \u003d driver.block_device_info_get_mapping("},{"line_number":7245,"context_line":"                block_device_info)"},{"line_number":7246,"context_line":"        for vol in block_device_mapping:"},{"line_number":7247,"context_line":"            # NOTE(mdbooth): The block_device_info we were passed was"},{"line_number":7248,"context_line":"            # initialized with BDMs from the source host before they were"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_55142442","line":7245,"updated":"2020-01-22 02:36:04.000000000","message":"Conflict here is because change I0bfb11296430dfffe9b091ae7c3a793617bd9d0d is not in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4adf1bb4a05ae610bb708e35414123de02981f56","unresolved":false,"context_lines":[{"line_number":7249,"context_line":"            # updated to point to the destination. We can safely use this to"},{"line_number":7250,"context_line":"            # disconnect the source without re-fetching."},{"line_number":7251,"context_line":"            disk_dev \u003d vol[\u0027mount_device\u0027].rpartition(\"/\")[2]"},{"line_number":7252,"context_line":"            self._disconnect_volume(vol[\u0027connection_info\u0027], disk_dev, instance)"},{"line_number":7253,"context_line":""},{"line_number":7254,"context_line":"    def post_live_migration_at_source(self, context, instance, network_info):"},{"line_number":7255,"context_line":"        \"\"\"Unplug VIFs from networks at source."}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_552d048e","line":7252,"updated":"2020-01-22 02:36:04.000000000","message":"And the difference here because changes I61a0bee9e71e9a67f6a7c04a7bfd6e77fe818a77 and Ica323b87fa85a454fca9d46ada3677f18fe50022 are not in Pike.","commit_id":"7edeaca31a2851ccaee21c8dd607a87de57d6674"}]}
