)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"6446a17ad09ff8871538193457d8d15d581e7fa5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"the new pci slot information that is allocated in the target node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In case of ovs offload sriov VMs, this causes wrong representor"},{"line_number":14,"context_line":"port to be unplugged in source node as wrong pci slot information"},{"line_number":15,"context_line":"is passed to os-vif."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Fix is to update network info passed to os-vif to use pci slot"},{"line_number":18,"context_line":"use in source node."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bfdaf3ff_1a7053a5","line":15,"range":{"start_line":14,"start_character":38,"end_line":15,"end_character":19},"updated":"2019-01-15 14:27:09.000000000","message":"why? (add some more info regarding the root cause of the issue)","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":27794,"name":"Maria Luisa Arches","email":"luisa.arches@nokia.com","username":"arches"},"change_message_id":"f8a652134537e73e96a3dd5f66ed122dd84febcb","unresolved":false,"context_lines":[{"line_number":11,"context_line":"the new pci slot information that is allocated in the target node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In case of ovs offload sriov VMs, this causes wrong representor"},{"line_number":14,"context_line":"port to be unplugged in source node as wrong pci slot information"},{"line_number":15,"context_line":"is passed to os-vif."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Fix is to update network info passed to os-vif to use pci slot"},{"line_number":18,"context_line":"use in source node."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bfdaf3ff_9ae68344","line":15,"range":{"start_line":14,"start_character":38,"end_line":15,"end_character":19},"in_reply_to":"bfdaf3ff_1a7053a5","updated":"2019-01-15 15:41:08.000000000","message":"Will update commit msg.\n\nRoot cause is that during migration of ovs offload sriov instance, it can happen that nova will use a different pci slot vs. to what is allocated to the VM in the source node.\n\nWhen the resize is confirmed, nova will use the current pci slot that is already allocated in the target node to pass in the driver. \n\nThis pci slot info is used by os-vif to determine what representor port to unplug during clean up in the source node. However, since nova passed the pci slot used in the target node(note that it can be different to what was previously allocated in the source node) os-vif will determine a wrong representor port to clean up.","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"}],"nova/compute/manager.py":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"244611348e922ca84e09ff2b4cb39a0375e20f39","unresolved":false,"context_lines":[{"line_number":3897,"context_line":"                                                                    net_info)"},{"line_number":3898,"context_line":"            # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":3899,"context_line":"            self.driver.confirm_migration(context, migration, instance,"},{"line_number":3900,"context_line":"                                          network_info)"},{"line_number":3901,"context_line":""},{"line_number":3902,"context_line":"            migration.status \u003d \u0027confirmed\u0027"},{"line_number":3903,"context_line":"            with migration.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_ba16e7f0","line":3900,"range":{"start_line":3900,"start_character":42,"end_line":3900,"end_character":54},"updated":"2019-01-15 14:50:18.000000000","message":"So, this should be called with the network_info as it was prior to the resize ?\n\njust a thought, much like in live-migration save the old VIFs and use them here.\n\ntoday its PCI device, what will tomorrow bring ? :)","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"a040ac0682bab74e3ef63546612f3f34914e28a6","unresolved":false,"context_lines":[{"line_number":3897,"context_line":"                                                                    net_info)"},{"line_number":3898,"context_line":"            # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":3899,"context_line":"            self.driver.confirm_migration(context, migration, instance,"},{"line_number":3900,"context_line":"                                          network_info)"},{"line_number":3901,"context_line":""},{"line_number":3902,"context_line":"            migration.status \u003d \u0027confirmed\u0027"},{"line_number":3903,"context_line":"            with migration.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_c9b14c46","line":3900,"range":{"start_line":3900,"start_character":42,"end_line":3900,"end_character":54},"in_reply_to":"9fdfeff1_c291f048","updated":"2019-02-13 17:48:55.000000000","message":"I think restoring just the PCI slots is prone to future errors as clearly the intent is to call within the virt driver vif unplug method with the source VIF object.\n\nif you decide to go a different way, it should be well expressed that you are _just_ restoring the PCI slot to allow for proper unplugging of the port representor.","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":27794,"name":"Maria Luisa Arches","email":"luisa.arches@nokia.com","username":"arches"},"change_message_id":"f8a652134537e73e96a3dd5f66ed122dd84febcb","unresolved":false,"context_lines":[{"line_number":3897,"context_line":"                                                                    net_info)"},{"line_number":3898,"context_line":"            # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":3899,"context_line":"            self.driver.confirm_migration(context, migration, instance,"},{"line_number":3900,"context_line":"                                          network_info)"},{"line_number":3901,"context_line":""},{"line_number":3902,"context_line":"            migration.status \u003d \u0027confirmed\u0027"},{"line_number":3903,"context_line":"            with migration.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_dd3e4528","line":3900,"range":{"start_line":3900,"start_character":42,"end_line":3900,"end_character":54},"in_reply_to":"bfdaf3ff_ba16e7f0","updated":"2019-01-15 15:41:08.000000000","message":"You mean create an instance.old_network_info? Can you point to me where is saving of the vif in live migration happens?","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":27794,"name":"Maria Luisa Arches","email":"luisa.arches@nokia.com","username":"arches"},"change_message_id":"dfcf0a2ca242508b2ccd06965dcf69d9d769f3d8","unresolved":false,"context_lines":[{"line_number":3897,"context_line":"                                                                    net_info)"},{"line_number":3898,"context_line":"            # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":3899,"context_line":"            self.driver.confirm_migration(context, migration, instance,"},{"line_number":3900,"context_line":"                                          network_info)"},{"line_number":3901,"context_line":""},{"line_number":3902,"context_line":"            migration.status \u003d \u0027confirmed\u0027"},{"line_number":3903,"context_line":"            with migration.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_c291f048","line":3900,"range":{"start_line":3900,"start_character":42,"end_line":3900,"end_character":54},"in_reply_to":"bfdaf3ff_ce00b86a","updated":"2019-02-01 10:39:59.000000000","message":"I checked those line of codes above and it seems might still be better to use the information that is stored in MigrationContenxt. I don\u0027t want to create another attribute to store this information, if its already there. \n\nSo I will continue with this approach for the fix. \n\nWhat do you guys think?","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"d80f3baede134a7df0fc3213ea9df74f61293495","unresolved":false,"context_lines":[{"line_number":3897,"context_line":"                                                                    net_info)"},{"line_number":3898,"context_line":"            # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":3899,"context_line":"            self.driver.confirm_migration(context, migration, instance,"},{"line_number":3900,"context_line":"                                          network_info)"},{"line_number":3901,"context_line":""},{"line_number":3902,"context_line":"            migration.status \u003d \u0027confirmed\u0027"},{"line_number":3903,"context_line":"            with migration.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_ce00b86a","line":3900,"range":{"start_line":3900,"start_character":42,"end_line":3900,"end_character":54},"in_reply_to":"bfdaf3ff_dd3e4528","updated":"2019-01-16 18:21:21.000000000","message":"VIFs are stored in LiveMigrateData object:\nhttps://github.com/openstack/nova/blob/e5b55245976293e0cb53089cc1efad6cc1edfa17/nova/objects/migrate_data.py#L118\n\ntoday its updated in conductor:\nhttps://github.com/openstack/nova/blob/e5b55245976293e0cb53089cc1efad6cc1edfa17/nova/conductor/tasks/live_migrate.py#L276\n\nthe Source VIFs are available in LiveMigrateData throughout the live-migration process.","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"}],"nova/network/neutronv2/api.py":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"04ee32357a7bb816e032dd3f1770e37ba9e92a28","unresolved":false,"context_lines":[{"line_number":2997,"context_line":"        pass"},{"line_number":2998,"context_line":""},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def update_instance_nw_info(self, context, instance, migration,"},{"line_number":3001,"context_line":"                                network_info):"},{"line_number":3002,"context_line":"        if migration.get(\u0027status\u0027) !\u003d \u0027confirming\u0027:"},{"line_number":3003,"context_line":"            return network_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_9a07631d","line":3000,"range":{"start_line":3000,"start_character":8,"end_line":3000,"end_character":31},"updated":"2019-01-15 15:00:41.000000000","message":"This method is not defined in base class. Imo it should be defined also there.","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"6446a17ad09ff8871538193457d8d15d581e7fa5","unresolved":false,"context_lines":[{"line_number":2998,"context_line":""},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def update_instance_nw_info(self, context, instance, migration,"},{"line_number":3001,"context_line":"                                network_info):"},{"line_number":3002,"context_line":"        if migration.get(\u0027status\u0027) !\u003d \u0027confirming\u0027:"},{"line_number":3003,"context_line":"            return network_info"},{"line_number":3004,"context_line":"        # In case of migration of VM with pci slots, we need"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_3a2517ac","line":3001,"updated":"2019-01-15 14:27:09.000000000","message":"lets have a docstring as its being used outside of this module","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":27794,"name":"Maria Luisa Arches","email":"luisa.arches@nokia.com","username":"arches"},"change_message_id":"bd86986db7e70fce552e74ad66e1065fc5c958b0","unresolved":false,"context_lines":[{"line_number":2998,"context_line":""},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def update_instance_nw_info(self, context, instance, migration,"},{"line_number":3001,"context_line":"                                network_info):"},{"line_number":3002,"context_line":"        if migration.get(\u0027status\u0027) !\u003d \u0027confirming\u0027:"},{"line_number":3003,"context_line":"            return network_info"},{"line_number":3004,"context_line":"        # In case of migration of VM with pci slots, we need"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_13602a32","line":3001,"in_reply_to":"bfdaf3ff_3a2517ac","updated":"2019-01-17 12:50:10.000000000","message":"Done","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"244611348e922ca84e09ff2b4cb39a0375e20f39","unresolved":false,"context_lines":[{"line_number":2998,"context_line":""},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def update_instance_nw_info(self, context, instance, migration,"},{"line_number":3001,"context_line":"                                network_info):"},{"line_number":3002,"context_line":"        if migration.get(\u0027status\u0027) !\u003d \u0027confirming\u0027:"},{"line_number":3003,"context_line":"            return network_info"},{"line_number":3004,"context_line":"        # In case of migration of VM with pci slots, we need"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_3ab517ce","line":3001,"in_reply_to":"bfdaf3ff_3a2517ac","updated":"2019-01-15 14:50:18.000000000","message":"Method name is too general IMO as its doing something very specific : restoring the PCI device address to the one from the source node when migration is at a specific state","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"04ee32357a7bb816e032dd3f1770e37ba9e92a28","unresolved":false,"context_lines":[{"line_number":2998,"context_line":""},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def update_instance_nw_info(self, context, instance, migration,"},{"line_number":3001,"context_line":"                                network_info):"},{"line_number":3002,"context_line":"        if migration.get(\u0027status\u0027) !\u003d \u0027confirming\u0027:"},{"line_number":3003,"context_line":"            return network_info"},{"line_number":3004,"context_line":"        # In case of migration of VM with pci slots, we need"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_1ad133ce","line":3001,"in_reply_to":"bfdaf3ff_3ab517ce","updated":"2019-01-15 15:00:41.000000000","message":"+1","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":27794,"name":"Maria Luisa Arches","email":"luisa.arches@nokia.com","username":"arches"},"change_message_id":"bd86986db7e70fce552e74ad66e1065fc5c958b0","unresolved":false,"context_lines":[{"line_number":2998,"context_line":""},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def update_instance_nw_info(self, context, instance, migration,"},{"line_number":3001,"context_line":"                                network_info):"},{"line_number":3002,"context_line":"        if migration.get(\u0027status\u0027) !\u003d \u0027confirming\u0027:"},{"line_number":3003,"context_line":"            return network_info"},{"line_number":3004,"context_line":"        # In case of migration of VM with pci slots, we need"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_b356fe5b","line":3001,"in_reply_to":"bfdaf3ff_3ab517ce","updated":"2019-01-17 12:50:10.000000000","message":"Done","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"04ee32357a7bb816e032dd3f1770e37ba9e92a28","unresolved":false,"context_lines":[{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def update_instance_nw_info(self, context, instance, migration,"},{"line_number":3001,"context_line":"                                network_info):"},{"line_number":3002,"context_line":"        if migration.get(\u0027status\u0027) !\u003d \u0027confirming\u0027:"},{"line_number":3003,"context_line":"            return network_info"},{"line_number":3004,"context_line":"        # In case of migration of VM with pci slots, we need"},{"line_number":3005,"context_line":"        # to know previously used pci slots in the source host for proper"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_3aa2f74c","line":3002,"range":{"start_line":3002,"start_character":39,"end_line":3002,"end_character":49},"updated":"2019-01-15 15:00:41.000000000","message":"It would be better to use constant here, but anyway it is not defined...","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":27794,"name":"Maria Luisa Arches","email":"luisa.arches@nokia.com","username":"arches"},"change_message_id":"bd86986db7e70fce552e74ad66e1065fc5c958b0","unresolved":false,"context_lines":[{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def update_instance_nw_info(self, context, instance, migration,"},{"line_number":3001,"context_line":"                                network_info):"},{"line_number":3002,"context_line":"        if migration.get(\u0027status\u0027) !\u003d \u0027confirming\u0027:"},{"line_number":3003,"context_line":"            return network_info"},{"line_number":3004,"context_line":"        # In case of migration of VM with pci slots, we need"},{"line_number":3005,"context_line":"        # to know previously used pci slots in the source host for proper"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_533552f6","line":3002,"range":{"start_line":3002,"start_character":39,"end_line":3002,"end_character":49},"in_reply_to":"bfdaf3ff_3aa2f74c","updated":"2019-01-17 12:50:10.000000000","message":"Will not do","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"c85bb9bea36c7e6cd836dcf9182d713f1f317508","unresolved":false,"context_lines":[{"line_number":3009,"context_line":"                                                          migration)"},{"line_number":3010,"context_line":"        if pci_mapping:"},{"line_number":3011,"context_line":"            for net in network_info:"},{"line_number":3012,"context_line":"                for old_dev, new_dev in pci_mapping.iteritems():"},{"line_number":3013,"context_line":"                    if net[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d\u003d new_dev.address:"},{"line_number":3014,"context_line":"                        net[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d old_dev"},{"line_number":3015,"context_line":"        return network_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_18d8d71b","line":3012,"range":{"start_line":3012,"start_character":52,"end_line":3012,"end_character":63},"updated":"2019-02-15 08:15:19.000000000","message":"Use items() instead of iteritems() because iteritems is not supported in python 3.","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"244611348e922ca84e09ff2b4cb39a0375e20f39","unresolved":false,"context_lines":[{"line_number":3010,"context_line":"        if pci_mapping:"},{"line_number":3011,"context_line":"            for net in network_info:"},{"line_number":3012,"context_line":"                for old_dev, new_dev in pci_mapping.iteritems():"},{"line_number":3013,"context_line":"                    if net[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d\u003d new_dev.address:"},{"line_number":3014,"context_line":"                        net[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d old_dev"},{"line_number":3015,"context_line":"        return network_info"},{"line_number":3016,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_9ac9a379","line":3013,"range":{"start_line":3013,"start_character":23,"end_line":3013,"end_character":49},"updated":"2019-01-15 14:50:18.000000000","message":"i dont think you can assume all VIFs here will have [\u0027profile\u0027][\u0027pci_slot\u0027].","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"244611348e922ca84e09ff2b4cb39a0375e20f39","unresolved":false,"context_lines":[{"line_number":3011,"context_line":"            for net in network_info:"},{"line_number":3012,"context_line":"                for old_dev, new_dev in pci_mapping.iteritems():"},{"line_number":3013,"context_line":"                    if net[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d\u003d new_dev.address:"},{"line_number":3014,"context_line":"                        net[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d old_dev"},{"line_number":3015,"context_line":"        return network_info"},{"line_number":3016,"context_line":""},{"line_number":3017,"context_line":"    def _get_pci_devices_from_migration_context(self, migration_context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_da940b47","line":3014,"range":{"start_line":3014,"start_character":24,"end_line":3014,"end_character":60},"updated":"2019-01-15 14:50:18.000000000","message":"once found you should break","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"}],"nova/tests/unit/network/test_neutronv2.py":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"6446a17ad09ff8871538193457d8d15d581e7fa5","unresolved":false,"context_lines":[{"line_number":4291,"context_line":"        migration \u003d {\u0027status\u0027: \u0027confirming\u0027}"},{"line_number":4292,"context_line":"        network_info \u003d [{\"profile\": {\"pci_slot\": \"0000:0b:00.1\","},{"line_number":4293,"context_line":"            \"physical_network\":\"providerInternal\","},{"line_number":4294,"context_line":"            \"capabilities\": [\"switchdev\"]}}] "},{"line_number":4295,"context_line":""},{"line_number":4296,"context_line":"        net_info \u003d self.api.update_instance_nw_info("},{"line_number":4297,"context_line":"            self.context, instance, migration, network_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_da408b38","line":4294,"range":{"start_line":4294,"start_character":44,"end_line":4294,"end_character":45},"updated":"2019-01-15 14:27:09.000000000","message":"remove space","commit_id":"34a27619a02cf07b96ec3c39d1b6f2b99ebd3a3d"}]}
