)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"97e65894abf846cbe29b9c50fd34b438369aa658","unresolved":false,"context_lines":[{"line_number":15,"context_line":"post_live_migration_at_destination()."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The network_info variable obtained from get_instance_nw_info() is used"},{"line_number":18,"context_line":"for 2 things: notifications - which aren\u0027t critical - and unplugging"},{"line_number":19,"context_line":"the instance\u0027s vifs on the source - which is very important!"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"It turns out that at the time of the get_instance_nw_info() call, the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f560f44_7cc9faa9","line":18,"range":{"start_line":18,"start_character":3,"end_line":18,"end_character":5},"updated":"2020-08-27 15:06:12.000000000","message":"two","commit_id":"aff6ef93e80d5906341661f123a62dd4ba3993c5"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"bdbcce51a4b86dc6b877efaeb16afb55e207a41f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"post_live_migration_at_destination()."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The network_info variable obtained from get_instance_nw_info() is used"},{"line_number":18,"context_line":"for 2 things: notifications - which aren\u0027t critical - and unplugging"},{"line_number":19,"context_line":"the instance\u0027s vifs on the source - which is very important!"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"It turns out that at the time of the get_instance_nw_info() call, the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f560f44_9c904e50","line":18,"range":{"start_line":18,"start_character":3,"end_line":18,"end_character":5},"in_reply_to":"9f560f44_7cc9faa9","updated":"2020-08-27 15:58:48.000000000","message":"Done","commit_id":"aff6ef93e80d5906341661f123a62dd4ba3993c5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"97e65894abf846cbe29b9c50fd34b438369aa658","unresolved":false,"context_lines":[{"line_number":27,"context_line":"ports. Because of that, we can replace it with a call to"},{"line_number":28,"context_line":"instance.get_network_info()."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"[1] https://opendev.org/openstack/nova/src/branch/master/nova/network/neutron.py#L2837-L2866"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Change-Id: If0fbae33ce2af198188c91638afef939256c2556"},{"line_number":33,"context_line":"Closes-bug: 1879787"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f560f44_7c3e1a8b","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":92},"updated":"2020-08-27 15:06:12.000000000","message":"Including the commit ID of this makes the link useful in the future. Pro tip: GitHub will let you shorten the hash but Gitea won\u0027t yet","commit_id":"aff6ef93e80d5906341661f123a62dd4ba3993c5"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"bdbcce51a4b86dc6b877efaeb16afb55e207a41f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"ports. Because of that, we can replace it with a call to"},{"line_number":28,"context_line":"instance.get_network_info()."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"[1] https://opendev.org/openstack/nova/src/branch/master/nova/network/neutron.py#L2837-L2866"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Change-Id: If0fbae33ce2af198188c91638afef939256c2556"},{"line_number":33,"context_line":"Closes-bug: 1879787"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f560f44_fc74ea37","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":92},"in_reply_to":"9f560f44_7c3e1a8b","updated":"2020-08-27 15:58:48.000000000","message":"Done","commit_id":"aff6ef93e80d5906341661f123a62dd4ba3993c5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90aee3892a96ec9213bde9dea2ec936a371a01de","unresolved":false,"context_lines":[{"line_number":27,"context_line":"ports. Because of that, we can replace it with a call to"},{"line_number":28,"context_line":"instance.get_network_info()."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"[1] https://opendev.org/openstack/nova/src/commit/d9e04c4ff0b1a9c3383f1848dc846e93030d83cb/nova/network/neutronv2/api.py#L2493-L2522"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Change-Id: If0fbae33ce2af198188c91638afef939256c2556"},{"line_number":33,"context_line":"Closes-bug: 1879787"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_2b6428e5","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":132},"updated":"2020-08-31 18:27:08.000000000","message":"in the multiple port bindig the dest binding is activated early in migrate_instance_start correct\n\nif not self.supports_port_binding_extension(context)\n\nits a noop and the port bidings are upated in \n\n_update_port_binding_for_instance\n\nhttps://opendev.org/openstack/nova/src/commit/d9e04c4ff0b1a9c3383f1848dc846e93030d83cb/nova/network/neutronv2/api.py#L3000-L3001\n\nwhich is invoked form\n\nmigrate_instance_finish which is even later then \n\nmigrate_instance_start obviously so in both cases the port is only updated to the destinatnion values after we retrive the info form the cache so the cache still has the source info.","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"}],"nova/compute/manager.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"97e65894abf846cbe29b9c50fd34b438369aa658","unresolved":false,"context_lines":[{"line_number":8356,"context_line":"        self._post_live_migration_remove_source_vol_connections("},{"line_number":8357,"context_line":"            ctxt, instance, source_bdms)"},{"line_number":8358,"context_line":""},{"line_number":8359,"context_line":"        # Releasing vlan."},{"line_number":8360,"context_line":"        # (not necessary in current implementation?)"},{"line_number":8361,"context_line":""},{"line_number":8362,"context_line":"        network_info \u003d instance.get_network_info()"},{"line_number":8363,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_1c643eb8","line":8360,"range":{"start_line":8359,"start_character":0,"end_line":8360,"end_character":52},"updated":"2020-08-27 15:06:12.000000000","message":"This isn\u0027t you, but it\u0027s confusing and irrelevant, right? Wanna drop it here while you have the context to know we can?","commit_id":"aff6ef93e80d5906341661f123a62dd4ba3993c5"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"bdbcce51a4b86dc6b877efaeb16afb55e207a41f","unresolved":false,"context_lines":[{"line_number":8356,"context_line":"        self._post_live_migration_remove_source_vol_connections("},{"line_number":8357,"context_line":"            ctxt, instance, source_bdms)"},{"line_number":8358,"context_line":""},{"line_number":8359,"context_line":"        # Releasing vlan."},{"line_number":8360,"context_line":"        # (not necessary in current implementation?)"},{"line_number":8361,"context_line":""},{"line_number":8362,"context_line":"        network_info \u003d instance.get_network_info()"},{"line_number":8363,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_fcf06a93","line":8360,"range":{"start_line":8359,"start_character":0,"end_line":8360,"end_character":52},"in_reply_to":"9f560f44_1c643eb8","updated":"2020-08-27 15:58:48.000000000","message":"It\u0027s from a different commit than the network_info stuff below. I can remove it, but I\u0027d rather do it in a different commit.","commit_id":"aff6ef93e80d5906341661f123a62dd4ba3993c5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"97e65894abf846cbe29b9c50fd34b438369aa658","unresolved":false,"context_lines":[{"line_number":8359,"context_line":"        # Releasing vlan."},{"line_number":8360,"context_line":"        # (not necessary in current implementation?)"},{"line_number":8361,"context_line":""},{"line_number":8362,"context_line":"        network_info \u003d instance.get_network_info()"},{"line_number":8363,"context_line":""},{"line_number":8364,"context_line":"        self._notify_about_instance_usage(ctxt, instance,"},{"line_number":8365,"context_line":"                                          \"live_migration._post.start\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_9c468e20","line":8362,"updated":"2020-08-27 15:06:12.000000000","message":"Could we get a context comment stating that this is still accurate here?","commit_id":"aff6ef93e80d5906341661f123a62dd4ba3993c5"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"bdbcce51a4b86dc6b877efaeb16afb55e207a41f","unresolved":false,"context_lines":[{"line_number":8359,"context_line":"        # Releasing vlan."},{"line_number":8360,"context_line":"        # (not necessary in current implementation?)"},{"line_number":8361,"context_line":""},{"line_number":8362,"context_line":"        network_info \u003d instance.get_network_info()"},{"line_number":8363,"context_line":""},{"line_number":8364,"context_line":"        self._notify_about_instance_usage(ctxt, instance,"},{"line_number":8365,"context_line":"                                          \"live_migration._post.start\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_dffab8b7","line":8362,"in_reply_to":"9f560f44_9c468e20","updated":"2020-08-27 15:58:48.000000000","message":"Done","commit_id":"aff6ef93e80d5906341661f123a62dd4ba3993c5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8137b9fdc4f30363a4b26b9854575a25d29107d0","unresolved":false,"context_lines":[{"line_number":8359,"context_line":"        # Releasing vlan."},{"line_number":8360,"context_line":"        # (not necessary in current implementation?)"},{"line_number":8361,"context_line":""},{"line_number":8362,"context_line":"        #NOTE(artom) At this point in time we have not bound the ports to the"},{"line_number":8363,"context_line":"        # destination host yet (this happens in migrate_instance_start()"},{"line_number":8364,"context_line":"        # below). Therefore, the \"old\" source network info that\u0027s still in the"},{"line_number":8365,"context_line":"        # instance info cache is safe to use here, since it\u0027ll be used below"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_7fda8c4a","line":8362,"range":{"start_line":8362,"start_character":8,"end_line":8362,"end_character":9},"updated":"2020-08-27 16:00:09.000000000","message":"whoops (flake8 won\u0027t be happy)","commit_id":"b027ba128427df44f7523945c28c2ae4a922bd21"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"757088e1e43dfa8ca9ff36278a71a553a371d248","unresolved":false,"context_lines":[{"line_number":8360,"context_line":"        # (not necessary in current implementation?)"},{"line_number":8361,"context_line":""},{"line_number":8362,"context_line":"        # NOTE(artom) At this point in time we have not bound the ports to the"},{"line_number":8363,"context_line":"        # destination host yet (this happens in migrate_instance_start()"},{"line_number":8364,"context_line":"        # below). Therefore, the \"old\" source network info that\u0027s still in the"},{"line_number":8365,"context_line":"        # instance info cache is safe to use here, since it\u0027ll be used below"},{"line_number":8366,"context_line":"        # during driver.post_live_migration_at_source() to unplug the VIFs on"},{"line_number":8367,"context_line":"        # the source."}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_6b064e1e","line":8364,"range":{"start_line":8363,"start_character":32,"end_line":8364,"end_character":15},"updated":"2020-08-27 19:30:04.000000000","message":"and that doesn\u0027t update the instance info cache until we\u0027ve unbound things on the source?","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90aee3892a96ec9213bde9dea2ec936a371a01de","unresolved":false,"context_lines":[{"line_number":8360,"context_line":"        # (not necessary in current implementation?)"},{"line_number":8361,"context_line":""},{"line_number":8362,"context_line":"        # NOTE(artom) At this point in time we have not bound the ports to the"},{"line_number":8363,"context_line":"        # destination host yet (this happens in migrate_instance_start()"},{"line_number":8364,"context_line":"        # below). Therefore, the \"old\" source network info that\u0027s still in the"},{"line_number":8365,"context_line":"        # instance info cache is safe to use here, since it\u0027ll be used below"},{"line_number":8366,"context_line":"        # during driver.post_live_migration_at_source() to unplug the VIFs on"},{"line_number":8367,"context_line":"        # the source."}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_2ba9c8dc","line":8364,"range":{"start_line":8363,"start_character":32,"end_line":8364,"end_character":15},"in_reply_to":"9f560f44_6b064e1e","updated":"2020-08-31 18:27:08.000000000","message":"well that happens on line 8383 below","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90aee3892a96ec9213bde9dea2ec936a371a01de","unresolved":false,"context_lines":[{"line_number":8380,"context_line":"        # For neutron, migrate_instance_start will activate the destination"},{"line_number":8381,"context_line":"        # host port bindings, if there are any created by conductor before live"},{"line_number":8382,"context_line":"        # migration started."},{"line_number":8383,"context_line":"        self.network_api.migrate_instance_start(ctxt,"},{"line_number":8384,"context_line":"                                                instance,"},{"line_number":8385,"context_line":"                                                migration)"},{"line_number":8386,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_cb812c50","line":8383,"range":{"start_line":8383,"start_character":25,"end_line":8383,"end_character":47},"updated":"2020-08-31 18:27:08.000000000","message":"right here.\n\nso for the multiple port bindings workflow we activate the dest bindings here.\n\nfor the old workflow we update teh bining host in migrate_instance_finish which is called form \n\npost_live_migration_at_source","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90aee3892a96ec9213bde9dea2ec936a371a01de","unresolved":false,"context_lines":[{"line_number":8399,"context_line":"                LOG.debug(\u0027Calling driver.post_live_migration_at_source \u0027"},{"line_number":8400,"context_line":"                          \u0027with original source VIFs from migrate_data: %s\u0027,"},{"line_number":8401,"context_line":"                          unplug_nw_info, instance\u003dinstance)"},{"line_number":8402,"context_line":"            self.driver.post_live_migration_at_source(ctxt, instance,"},{"line_number":8403,"context_line":"                                                      unplug_nw_info)"},{"line_number":8404,"context_line":"        except NotImplementedError as ex:"},{"line_number":8405,"context_line":"            LOG.debug(ex, instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_2bd70852","line":8402,"range":{"start_line":8402,"start_character":24,"end_line":8402,"end_character":53},"updated":"2020-08-31 18:27:08.000000000","message":"so we call post_live_migration_at_source here\n\nand it calls migrate_instnace_finish here\nhttps://github.com/openstack/nova/blob/b5d48043466b53fbdfe7b93c2e4efd449904e593/nova/compute/manager.py#L8568\n\nwhich calls _update_port_binding_for_instance which updated the host id here \n\nhttps://github.com/openstack/nova/blob/b5d48043466b53fbdfe7b93c2e4efd449904e593/nova/network/neutron.py#L3396","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"}],"nova/tests/functional/compute/test_live_migration.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"757088e1e43dfa8ca9ff36278a71a553a371d248","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            make sure driver.post_live_migration() raises only once, and only"},{"line_number":208,"context_line":"            on the source."},{"line_number":209,"context_line":"            \"\"\""},{"line_number":210,"context_line":"            with mock.patch.object(self.computes[\u0027src\u0027].manager.network_api,"},{"line_number":211,"context_line":"                                   \u0027get_instance_nw_info\u0027,"},{"line_number":212,"context_line":"                                   side_effect\u003dConnectionError):"},{"line_number":213,"context_line":"                return orig_plm(*args, **kwargs)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        with mock.patch.object(self.computes[\u0027src\u0027].manager,"},{"line_number":216,"context_line":"                               \u0027_post_live_migration\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_b02573c4","line":213,"range":{"start_line":210,"start_character":0,"end_line":213,"end_character":48},"updated":"2020-08-27 19:30:04.000000000","message":"It\u0027s slightly odd to raise an error from something we know we aren\u0027t going to call, wouldn\u0027t it be easier to assert that it isn\u0027t called?","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6306b53f471813c82d1b8324443fa1250ecb39f9","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            make sure driver.post_live_migration() raises only once, and only"},{"line_number":208,"context_line":"            on the source."},{"line_number":209,"context_line":"            \"\"\""},{"line_number":210,"context_line":"            with mock.patch.object(self.computes[\u0027src\u0027].manager.network_api,"},{"line_number":211,"context_line":"                                   \u0027get_instance_nw_info\u0027,"},{"line_number":212,"context_line":"                                   side_effect\u003dConnectionError):"},{"line_number":213,"context_line":"                return orig_plm(*args, **kwargs)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        with mock.patch.object(self.computes[\u0027src\u0027].manager,"},{"line_number":216,"context_line":"                               \u0027_post_live_migration\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1daeb897","line":213,"range":{"start_line":210,"start_character":0,"end_line":213,"end_character":48},"in_reply_to":"9f560f44_b02573c4","updated":"2020-09-01 21:11:48.000000000","message":"Yeah, maybe I can just remove this? Sean suggested a way to check that we have the correct vif info lower down, I think it should be enough for this test...","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"757088e1e43dfa8ca9ff36278a71a553a371d248","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        with mock.patch.object(self.computes[\u0027src\u0027].manager,"},{"line_number":216,"context_line":"                               \u0027_post_live_migration\u0027,"},{"line_number":217,"context_line":"                               side_effect\u003dstub_plm):"},{"line_number":218,"context_line":"            self._live_migrate(server, \u0027completed\u0027)"},{"line_number":219,"context_line":"            server \u003d self.api.get_server(server[\u0027id\u0027])"},{"line_number":220,"context_line":"            self.assertEqual(\u0027dest\u0027, server[\u0027OS-EXT-SRV-ATTR:host\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_301b2381","line":220,"range":{"start_line":218,"start_character":0,"end_line":220,"end_character":68},"updated":"2020-08-27 19:30:04.000000000","message":"This might be something for a fup but do you need to assert that the source ports are bound and the dest ports unbound here to prove everything worked as expected from a Neutron point of view?","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90aee3892a96ec9213bde9dea2ec936a371a01de","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        with mock.patch.object(self.computes[\u0027src\u0027].manager,"},{"line_number":216,"context_line":"                               \u0027_post_live_migration\u0027,"},{"line_number":217,"context_line":"                               side_effect\u003dstub_plm):"},{"line_number":218,"context_line":"            self._live_migrate(server, \u0027completed\u0027)"},{"line_number":219,"context_line":"            server \u003d self.api.get_server(server[\u0027id\u0027])"},{"line_number":220,"context_line":"            self.assertEqual(\u0027dest\u0027, server[\u0027OS-EXT-SRV-ATTR:host\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_0b3fa487","line":220,"range":{"start_line":218,"start_character":0,"end_line":220,"end_character":68},"in_reply_to":"9f560f44_301b2381","updated":"2020-08-31 18:27:08.000000000","message":"you could im not sure its required but it can certenly be done in a followup.\n\nyou would basicaly get the vifs form the info cache and just assert that binding:host_id is the source host.\n\nthe issue is we dont currently store that in the vif objects\nin the info cache \n\nhttps://github.com/openstack/nova/blob/master/nova/network/model.py#L380-L404\n\nthe vif VIFMigrateData object has a host field\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/migrate_data.py#L49\n\nbut the vif model object in the info cache do not.\n\nwe could easily add one but its not there currently.\n\ni would not add that just for the sake of a test but if we have a use for the host field i dont really have an issue with setting it in the vif model objects.","commit_id":"38e444800219fe951039517a93b8dcffed8dab2a"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e871fed9e98385e3dd850b314682a0497a25a540","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            \"\"\""},{"line_number":204,"context_line":"            vif \u003d network_info[0]"},{"line_number":205,"context_line":"            self.assertEqual(self.neutron.port_2[\u0027id\u0027], vif[\u0027id\u0027])"},{"line_number":206,"context_line":"            self.assertNotIn(\u0027migrating_to\u0027, vif[\u0027profile\u0027])"},{"line_number":207,"context_line":"            # NOTE(artom) The fake virt driver does not implement"},{"line_number":208,"context_line":"            # post_live_migration_at_source(), so do the same here."},{"line_number":209,"context_line":"            raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_9182a2ff","line":206,"updated":"2020-09-02 14:51:02.000000000","message":"This is actually a useless assertion because the NeutronFixture does not seem to behave like real life, so this is never present, even if we revert L8391 in compute/manager.py. I\u0027d rather not just assert_not_called(network_api.get_instance_nw_info), so lemme see if I can figure out what\u0027s going on and fix it.","commit_id":"7bb0dbc26c25a2989a9dda5a3b52adb1464110d7"}]}
