)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41affe7ef214d10720fa02820f9cf25e361d23dc","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"While other approaches are possible for solving the issue,"},{"line_number":15,"context_line":"The approach proposed in the series allows the fix to be safely"},{"line_number":16,"context_line":"backported."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Id3c4d839fb1a6da47cfb366b65c0904d281a218f"},{"line_number":19,"context_line":"Closes-Bug: #1809095"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bfb3d3c7_2848d52a","line":16,"updated":"2019-06-10 21:30:11.000000000","message":"Technically this all only works if the source and target computes are running with this code, right? So if someone is doing a rolling upgrade and has the newer code on the dest host but not the source host, they won\u0027t have this change and they\u0027ll still have an issue. But I guess that\u0027s no different than not having a fix at all. Fixing anything that requires both sides of a migration to be in sync is a pain in the ass.","commit_id":"000e93df09fd4941bb69f715c955b940871a1ec6"}],"nova/compute/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e284bcb68bdd69256792b785b121cda88d018b84","unresolved":false,"context_lines":[{"line_number":3982,"context_line":""},{"line_number":3983,"context_line":"        do_confirm_resize(context, instance, migration.id)"},{"line_number":3984,"context_line":""},{"line_number":3985,"context_line":"    def _update_nw_info_with_pci_mapping(self, nw_info, pci_mapping):"},{"line_number":3986,"context_line":"        if nw_info and pci_mapping:"},{"line_number":3987,"context_line":"            for vif in nw_info:"},{"line_number":3988,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_87e427e2","line":3985,"range":{"start_line":3985,"start_character":8,"end_line":3985,"end_character":40},"updated":"2019-04-01 11:04:27.000000000","message":"rather then modifying the nw_info object this would be simpler to reason about if you copied the nw_info object and returned the updated copy.","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8543db244ba4eca19feb76cfd716527d2b79bad9","unresolved":false,"context_lines":[{"line_number":3982,"context_line":""},{"line_number":3983,"context_line":"        do_confirm_resize(context, instance, migration.id)"},{"line_number":3984,"context_line":""},{"line_number":3985,"context_line":"    def _update_nw_info_with_pci_mapping(self, nw_info, pci_mapping):"},{"line_number":3986,"context_line":"        if nw_info and pci_mapping:"},{"line_number":3987,"context_line":"            for vif in nw_info:"},{"line_number":3988,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_283e49da","line":3985,"range":{"start_line":3985,"start_character":8,"end_line":3985,"end_character":40},"in_reply_to":"5fc1f717_225d0ae9","updated":"2019-04-02 13:13:45.000000000","message":"its just a pythonic style thing.\n\nthis works but it reads a c code\n\nwhile you can modify your in put arguments in python as \npython calling convention is basically pass by pointer, it\nis generally consider surprising when code dose this.\n\nin generaly fucntion that dont return anything are usually\nassumed to meraly sink there argments in a readonly manner\nbut not modify them.\n\nas such when modificaiton are the intent of the function its generally prefered to retrun the modified verions.\n\nthe fact that python support mulitple return argument makes modificaiton if input argurment even less useful as that usecase which existis in c is not an issue in python.\n\nthis was really just a nit but i would not have assumed the called to this funciton updated it if it was not for how you named it. even with a descriptive name like _update_nw_info_with_pci_mapping my first tought was is this updating it in a db or the network info cache somewhere rather then is it modifying the import arg.\n\ni have a limmited c++ background so im familar with this idiom but i do not expect to see it in the openstack codebase and when i do come across it i always have to do a double take and reasses my assumtions of the surrounding function.","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"c4ce5c605b211b0d0cfa824df1a4e3685b89e207","unresolved":false,"context_lines":[{"line_number":3982,"context_line":""},{"line_number":3983,"context_line":"        do_confirm_resize(context, instance, migration.id)"},{"line_number":3984,"context_line":""},{"line_number":3985,"context_line":"    def _update_nw_info_with_pci_mapping(self, nw_info, pci_mapping):"},{"line_number":3986,"context_line":"        if nw_info and pci_mapping:"},{"line_number":3987,"context_line":"            for vif in nw_info:"},{"line_number":3988,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_f80c6195","line":3985,"range":{"start_line":3985,"start_character":8,"end_line":3985,"end_character":40},"in_reply_to":"5fc1f717_283e49da","updated":"2019-04-04 10:15:26.000000000","message":"I see, thanks for the insight.\nill modify this to first copy nw_info and return a new value.","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"6a75eb0f082a9e25af9a7572dc552057d2ca31b8","unresolved":false,"context_lines":[{"line_number":3982,"context_line":""},{"line_number":3983,"context_line":"        do_confirm_resize(context, instance, migration.id)"},{"line_number":3984,"context_line":""},{"line_number":3985,"context_line":"    def _update_nw_info_with_pci_mapping(self, nw_info, pci_mapping):"},{"line_number":3986,"context_line":"        if nw_info and pci_mapping:"},{"line_number":3987,"context_line":"            for vif in nw_info:"},{"line_number":3988,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_225d0ae9","line":3985,"range":{"start_line":3985,"start_character":8,"end_line":3985,"end_character":40},"in_reply_to":"5fc1f717_87e427e2","updated":"2019-04-02 12:38:04.000000000","message":"not sure i follow you here, can you elaborate on why the approach to copy is better ?","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e284bcb68bdd69256792b785b121cda88d018b84","unresolved":false,"context_lines":[{"line_number":3987,"context_line":"            for vif in nw_info:"},{"line_number":3988,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"},{"line_number":3989,"context_line":"                    continue"},{"line_number":3990,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":3991,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":3992,"context_line":"                if new_dev:"},{"line_number":3993,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"},{"line_number":3994,"context_line":"                    LOG.debug(\"Updating VIF\u0027s PCI address for VIF %(id)s. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_27fd33b1","line":3991,"range":{"start_line":3990,"start_character":16,"end_line":3991,"end_character":55},"updated":"2019-04-01 11:04:27.000000000","message":"you need to do this becuase we dont have the VIFMigrateData\nobject we use for live migration and the embeded source_vif \nhttps://github.com/openstack/nova/blob/master/nova/objects/migrate_data.py#L31-L60\n\nso your trying to construct the destination vif adress by looking up the new pci device using the pci adress of the\nold vif address.","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"6a75eb0f082a9e25af9a7572dc552057d2ca31b8","unresolved":false,"context_lines":[{"line_number":3987,"context_line":"            for vif in nw_info:"},{"line_number":3988,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"},{"line_number":3989,"context_line":"                    continue"},{"line_number":3990,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":3991,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":3992,"context_line":"                if new_dev:"},{"line_number":3993,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"},{"line_number":3994,"context_line":"                    LOG.debug(\"Updating VIF\u0027s PCI address for VIF %(id)s. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_df9d0158","line":3991,"range":{"start_line":3990,"start_character":16,"end_line":3991,"end_character":55},"in_reply_to":"5fc1f717_27fd33b1","updated":"2019-04-02 12:38:04.000000000","message":"indeed. using VIFMigrateData will be an extensive change that will be a pain to backport.","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"c4ce5c605b211b0d0cfa824df1a4e3685b89e207","unresolved":false,"context_lines":[{"line_number":3987,"context_line":"            for vif in nw_info:"},{"line_number":3988,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"},{"line_number":3989,"context_line":"                    continue"},{"line_number":3990,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":3991,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":3992,"context_line":"                if new_dev:"},{"line_number":3993,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"},{"line_number":3994,"context_line":"                    LOG.debug(\"Updating VIF\u0027s PCI address for VIF %(id)s. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_324bea87","line":3991,"range":{"start_line":3990,"start_character":16,"end_line":3991,"end_character":55},"in_reply_to":"5fc1f717_4877150a","updated":"2019-04-04 10:15:26.000000000","message":"same thoughts rose when working on the live migration patches :)","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8543db244ba4eca19feb76cfd716527d2b79bad9","unresolved":false,"context_lines":[{"line_number":3987,"context_line":"            for vif in nw_info:"},{"line_number":3988,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"},{"line_number":3989,"context_line":"                    continue"},{"line_number":3990,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":3991,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":3992,"context_line":"                if new_dev:"},{"line_number":3993,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"},{"line_number":3994,"context_line":"                    LOG.debug(\"Updating VIF\u0027s PCI address for VIF %(id)s. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_4877150a","line":3991,"range":{"start_line":3990,"start_character":16,"end_line":3991,"end_character":55},"in_reply_to":"5fc1f717_df9d0158","updated":"2019-04-02 13:13:45.000000000","message":"it would be unbackporatble as it would involve object changes.\n\nbut i honestly think its worth exploring converging the live and cold migration flows at aome point","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e284bcb68bdd69256792b785b121cda88d018b84","unresolved":false,"context_lines":[{"line_number":4023,"context_line":""},{"line_number":4024,"context_line":"            # NOTE(adrianc): Populate old PCI device in VIF profile"},{"line_number":4025,"context_line":"            # to allow virt driver to properly unplug it from HV."},{"line_number":4026,"context_line":"            if instance.migration_context:"},{"line_number":4027,"context_line":"                pci_mapping \u003d (instance.migration_context."},{"line_number":4028,"context_line":"                               get_pci_mapping_for_migration(True))"},{"line_number":4029,"context_line":"                self._update_nw_info_with_pci_mapping(network_info,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_47ce3f5c","line":4026,"range":{"start_line":4026,"start_character":15,"end_line":4026,"end_character":41},"updated":"2019-04-01 11:04:27.000000000","message":"in what cases will the migration_context not be set?","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"79e5283bb98ce0715ae1ba491848c7378c0c3874","unresolved":false,"context_lines":[{"line_number":4023,"context_line":""},{"line_number":4024,"context_line":"            # NOTE(adrianc): Populate old PCI device in VIF profile"},{"line_number":4025,"context_line":"            # to allow virt driver to properly unplug it from HV."},{"line_number":4026,"context_line":"            if instance.migration_context:"},{"line_number":4027,"context_line":"                pci_mapping \u003d (instance.migration_context."},{"line_number":4028,"context_line":"                               get_pci_mapping_for_migration(True))"},{"line_number":4029,"context_line":"                self._update_nw_info_with_pci_mapping(network_info,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_49a96edb","line":4026,"range":{"start_line":4026,"start_character":15,"end_line":4026,"end_character":41},"in_reply_to":"5fc1f717_47ce3f5c","updated":"2019-04-01 14:56:34.000000000","message":"is this unset for a resize to the same host?","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"6a75eb0f082a9e25af9a7572dc552057d2ca31b8","unresolved":false,"context_lines":[{"line_number":4023,"context_line":""},{"line_number":4024,"context_line":"            # NOTE(adrianc): Populate old PCI device in VIF profile"},{"line_number":4025,"context_line":"            # to allow virt driver to properly unplug it from HV."},{"line_number":4026,"context_line":"            if instance.migration_context:"},{"line_number":4027,"context_line":"                pci_mapping \u003d (instance.migration_context."},{"line_number":4028,"context_line":"                               get_pci_mapping_for_migration(True))"},{"line_number":4029,"context_line":"                self._update_nw_info_with_pci_mapping(network_info,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_5f98311a","line":4026,"range":{"start_line":4026,"start_character":15,"end_line":4026,"end_character":41},"in_reply_to":"5fc1f717_49a96edb","updated":"2019-04-02 12:38:04.000000000","message":"Good point !\ninitially i just moved the check from neutronV2 module\nbut the check was there since it was called from different flows.\n\nHowever in our case (resize), instance.migration_context is being initialized by the resource tracker when calling ComputeManager._prep_resize()\n\nbottom line, as far as i can see, in case of resize, regardless of the destination host, migration_context is initialized.\n\nhttps://github.com/openstack/nova/blob/d569ade1703bd5811eea8dd987ecd84bd0337fac/nova/compute/resource_tracker.py#L350","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e284bcb68bdd69256792b785b121cda88d018b84","unresolved":false,"context_lines":[{"line_number":4031,"context_line":""},{"line_number":4032,"context_line":"            # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":4033,"context_line":"            self.driver.confirm_migration(context, migration, instance,"},{"line_number":4034,"context_line":"                                          network_info)"},{"line_number":4035,"context_line":""},{"line_number":4036,"context_line":"            migration.status \u003d \u0027confirmed\u0027"},{"line_number":4037,"context_line":"            with migration.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_6739fb3d","line":4034,"range":{"start_line":4034,"start_character":42,"end_line":4034,"end_character":54},"updated":"2019-04-01 11:04:27.000000000","message":"if the instance.migration_context is not set this will contain the un-updated vifs which would result in the\nsame bug. is that a valid thing to do?\n\nim just making sure the if above is correct.","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"6a75eb0f082a9e25af9a7572dc552057d2ca31b8","unresolved":false,"context_lines":[{"line_number":4031,"context_line":""},{"line_number":4032,"context_line":"            # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":4033,"context_line":"            self.driver.confirm_migration(context, migration, instance,"},{"line_number":4034,"context_line":"                                          network_info)"},{"line_number":4035,"context_line":""},{"line_number":4036,"context_line":"            migration.status \u003d \u0027confirmed\u0027"},{"line_number":4037,"context_line":"            with migration.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_bf74b5d1","line":4034,"range":{"start_line":4034,"start_character":42,"end_line":4034,"end_character":54},"in_reply_to":"5fc1f717_6739fb3d","updated":"2019-04-02 12:38:04.000000000","message":"the above contains an un-needed if statement, will remove.","commit_id":"f5aa276615107a9fbb856dadde6bf4ab3aa2d9e7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2e1c404dd27e1589910194feed06f14e0da2328b","unresolved":false,"context_lines":[{"line_number":3998,"context_line":"        do_confirm_resize(context, instance, migration.id)"},{"line_number":3999,"context_line":""},{"line_number":4000,"context_line":"    def _get_updated_nw_info_with_pci_mapping(self, nw_info, pci_mapping):"},{"line_number":4001,"context_line":"        updated_nw_info \u003d copy.deepcopy(nw_info)"},{"line_number":4002,"context_line":"        if nw_info and pci_mapping:"},{"line_number":4003,"context_line":"            for vif in updated_nw_info:"},{"line_number":4004,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_d1f756d4","line":4001,"range":{"start_line":4001,"start_character":8,"end_line":4001,"end_character":48},"updated":"2019-05-16 21:16:59.000000000","message":"Move this inside the condition for efficiency.","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"34edaa7ce31384908352c018baad3450cfb2a737","unresolved":false,"context_lines":[{"line_number":3998,"context_line":"        do_confirm_resize(context, instance, migration.id)"},{"line_number":3999,"context_line":""},{"line_number":4000,"context_line":"    def _get_updated_nw_info_with_pci_mapping(self, nw_info, pci_mapping):"},{"line_number":4001,"context_line":"        updated_nw_info \u003d copy.deepcopy(nw_info)"},{"line_number":4002,"context_line":"        if nw_info and pci_mapping:"},{"line_number":4003,"context_line":"            for vif in updated_nw_info:"},{"line_number":4004,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_24e1ab9b","line":4001,"range":{"start_line":4001,"start_character":8,"end_line":4001,"end_character":48},"in_reply_to":"bfb3d3c7_50910752","updated":"2019-05-20 15:20:43.000000000","message":"\u003e The method always returns a new copy of \u0027nw_info\u0027 as i didn\u0027t want\n \u003e to modify the VIFs in place.\n\nYeah, I get that. It just seems like an unnecessary copy. It\u0027s not worth blocking on, but I would be happy with a code comment like\n\n # NOTE(adrianc): This method returns a copy if modifications are made; else it\n # returns the original nw_info.","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"34ea7ba76b453bd241bc27cb92642775a8dbe703","unresolved":false,"context_lines":[{"line_number":3998,"context_line":"        do_confirm_resize(context, instance, migration.id)"},{"line_number":3999,"context_line":""},{"line_number":4000,"context_line":"    def _get_updated_nw_info_with_pci_mapping(self, nw_info, pci_mapping):"},{"line_number":4001,"context_line":"        updated_nw_info \u003d copy.deepcopy(nw_info)"},{"line_number":4002,"context_line":"        if nw_info and pci_mapping:"},{"line_number":4003,"context_line":"            for vif in updated_nw_info:"},{"line_number":4004,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_50910752","line":4001,"range":{"start_line":4001,"start_character":8,"end_line":4001,"end_character":48},"in_reply_to":"bfb3d3c7_d1f756d4","updated":"2019-05-19 15:21:16.000000000","message":"The method always returns a new copy of \u0027nw_info\u0027 as i didn\u0027t want to modify the VIFs in place.\n\nreturning the existing \u0027nw_info\u0027 object in case of no changes or a new updated object in case there are changes seemed inconsistent to me.\nif that\u0027s an OK approach i can make the modifications.","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3d4f44c6468b7590c557a9c2e23e3d2d817fb4ad","unresolved":false,"context_lines":[{"line_number":4001,"context_line":"        updated_nw_info \u003d copy.deepcopy(nw_info)"},{"line_number":4002,"context_line":"        if nw_info and pci_mapping:"},{"line_number":4003,"context_line":"            for vif in updated_nw_info:"},{"line_number":4004,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"},{"line_number":4005,"context_line":"                    continue"},{"line_number":4006,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":4007,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":4008,"context_line":"                if new_dev:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_8e1bff71","line":4005,"range":{"start_line":4004,"start_character":16,"end_line":4005,"end_character":28},"updated":"2019-05-16 19:42:39.000000000","message":"nit i would personally invert this and instead do \n\nif vif[\u0027vnic_type\u0027] in network_model.VNIC_TYPES_SRIOV:\n...\n\nto avoid the need to use continue","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"34ea7ba76b453bd241bc27cb92642775a8dbe703","unresolved":false,"context_lines":[{"line_number":4001,"context_line":"        updated_nw_info \u003d copy.deepcopy(nw_info)"},{"line_number":4002,"context_line":"        if nw_info and pci_mapping:"},{"line_number":4003,"context_line":"            for vif in updated_nw_info:"},{"line_number":4004,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"},{"line_number":4005,"context_line":"                    continue"},{"line_number":4006,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":4007,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":4008,"context_line":"                if new_dev:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_8b399442","line":4005,"range":{"start_line":4004,"start_character":16,"end_line":4005,"end_character":28},"in_reply_to":"bfb3d3c7_8e1bff71","updated":"2019-05-19 15:21:16.000000000","message":"kinda cuts down on code real-estate, but it fits so ill modify :)","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3d4f44c6468b7590c557a9c2e23e3d2d817fb4ad","unresolved":false,"context_lines":[{"line_number":4003,"context_line":"            for vif in updated_nw_info:"},{"line_number":4004,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"},{"line_number":4005,"context_line":"                    continue"},{"line_number":4006,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":4007,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":4008,"context_line":"                if new_dev:"},{"line_number":4009,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_4e4c2776","line":4006,"range":{"start_line":4006,"start_character":16,"end_line":4006,"end_character":69},"updated":"2019-05-16 19:42:39.000000000","message":"this will be None if the profile is not set","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3d4f44c6468b7590c557a9c2e23e3d2d817fb4ad","unresolved":false,"context_lines":[{"line_number":4004,"context_line":"                if vif[\u0027vnic_type\u0027] not in network_model.VNIC_TYPES_SRIOV:"},{"line_number":4005,"context_line":"                    continue"},{"line_number":4006,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":4007,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":4008,"context_line":"                if new_dev:"},{"line_number":4009,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"},{"line_number":4010,"context_line":"                    LOG.debug(\"Updating VIF\u0027s PCI address for VIF %(id)s. \""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_8e49bf61","line":4007,"range":{"start_line":4007,"start_character":16,"end_line":4007,"end_character":55},"updated":"2019-05-16 19:42:39.000000000","message":"and since {}.get(None) return None\n\n\u003e\u003e\u003e {}.get(None) is None\nTrue\n\n\nnew_dev will be None","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3d4f44c6468b7590c557a9c2e23e3d2d817fb4ad","unresolved":false,"context_lines":[{"line_number":4005,"context_line":"                    continue"},{"line_number":4006,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":4007,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":4008,"context_line":"                if new_dev:"},{"line_number":4009,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"},{"line_number":4010,"context_line":"                    LOG.debug(\"Updating VIF\u0027s PCI address for VIF %(id)s. \""},{"line_number":4011,"context_line":"                              \"Original value %(orig_val)s, \""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_4e83c757","line":4008,"range":{"start_line":4008,"start_character":12,"end_line":4008,"end_character":27},"updated":"2019-05-16 19:42:39.000000000","message":"so this will be false\n\n\nif its an sriov device however which we asserted on line\n4003 the profile should alway be set and we shuld have a pci_slot value after the port has been first bound so maybe we shoudl have an else clause for thsi that logs an error if it is ever called becaue it should never happen.\n\nalternitivly since it should never happing this if should not be needed as it is an error if new_dev is ever none as it means the vif is not bound correctly.","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2e1c404dd27e1589910194feed06f14e0da2328b","unresolved":false,"context_lines":[{"line_number":4005,"context_line":"                    continue"},{"line_number":4006,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":4007,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":4008,"context_line":"                if new_dev:"},{"line_number":4009,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"},{"line_number":4010,"context_line":"                    LOG.debug(\"Updating VIF\u0027s PCI address for VIF %(id)s. \""},{"line_number":4011,"context_line":"                              \"Original value %(orig_val)s, \""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_b19ae26b","line":4008,"range":{"start_line":4008,"start_character":12,"end_line":4008,"end_character":27},"in_reply_to":"bfb3d3c7_4e83c757","updated":"2019-05-16 21:16:59.000000000","message":"\u003e alternatively, since it should never happen this, `if` should not be\n \u003e needed: it is an error if new_dev is ever None as it means the\n \u003e vif is not bound correctly.\n\nOr instead of all the .get shenanigans, we could do hard dict accesses so we get an exception if something isn\u0027t right.\n\n try:\n     vif_pci_addr \u003d vif[\u0027profile\u0027][\u0027pci_slot\u0027]\n     new_addr \u003d pci_mapping[vif_pci_addr].address\n     LOG.debug(...)\n     vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_addr\n except (KeyError, AttributeError):\n     LOG.error(\"This should never happen\")\n     raise # or ignore, if that\u0027s the right thing to do","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"34ea7ba76b453bd241bc27cb92642775a8dbe703","unresolved":false,"context_lines":[{"line_number":4005,"context_line":"                    continue"},{"line_number":4006,"context_line":"                vif_pci_addr \u003d vif.get(\u0027profile\u0027, {}).get(\u0027pci_slot\u0027)"},{"line_number":4007,"context_line":"                new_dev \u003d pci_mapping.get(vif_pci_addr)"},{"line_number":4008,"context_line":"                if new_dev:"},{"line_number":4009,"context_line":"                    vif[\u0027profile\u0027][\u0027pci_slot\u0027] \u003d new_dev.address"},{"line_number":4010,"context_line":"                    LOG.debug(\"Updating VIF\u0027s PCI address for VIF %(id)s. \""},{"line_number":4011,"context_line":"                              \"Original value %(orig_val)s, \""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_50e34706","line":4008,"range":{"start_line":4008,"start_character":12,"end_line":4008,"end_character":27},"in_reply_to":"bfb3d3c7_b19ae26b","updated":"2019-05-19 15:21:16.000000000","message":"ill re-work it to go with the exception approach.","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2e1c404dd27e1589910194feed06f14e0da2328b","unresolved":false,"context_lines":[{"line_number":4037,"context_line":"                                                             instance)"},{"line_number":4038,"context_line":""},{"line_number":4039,"context_line":"        # NOTE(adrianc): Populate old PCI device in VIF profile"},{"line_number":4040,"context_line":"        # to allow virt driver to properly unplug it from HV."},{"line_number":4041,"context_line":"        pci_mapping \u003d (instance.migration_context."},{"line_number":4042,"context_line":"                       get_pci_mapping_for_migration(True))"},{"line_number":4043,"context_line":"        network_info \u003d self._get_updated_nw_info_with_pci_mapping("}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_315b522f","line":4040,"range":{"start_line":4040,"start_character":58,"end_line":4040,"end_character":60},"updated":"2019-05-16 21:16:59.000000000","message":"Is this \u0027hypervisor\u0027? May as well spell it out. You have room :)","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"34ea7ba76b453bd241bc27cb92642775a8dbe703","unresolved":false,"context_lines":[{"line_number":4037,"context_line":"                                                             instance)"},{"line_number":4038,"context_line":""},{"line_number":4039,"context_line":"        # NOTE(adrianc): Populate old PCI device in VIF profile"},{"line_number":4040,"context_line":"        # to allow virt driver to properly unplug it from HV."},{"line_number":4041,"context_line":"        pci_mapping \u003d (instance.migration_context."},{"line_number":4042,"context_line":"                       get_pci_mapping_for_migration(True))"},{"line_number":4043,"context_line":"        network_info \u003d self._get_updated_nw_info_with_pci_mapping("}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_70dc4b46","line":4040,"range":{"start_line":4040,"start_character":58,"end_line":4040,"end_character":60},"in_reply_to":"bfb3d3c7_315b522f","updated":"2019-05-19 15:21:16.000000000","message":"Done","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2e1c404dd27e1589910194feed06f14e0da2328b","unresolved":false,"context_lines":[{"line_number":4042,"context_line":"                       get_pci_mapping_for_migration(True))"},{"line_number":4043,"context_line":"        network_info \u003d self._get_updated_nw_info_with_pci_mapping("},{"line_number":4044,"context_line":"            network_info, pci_mapping)"},{"line_number":4045,"context_line":""},{"line_number":4046,"context_line":"        # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":4047,"context_line":"        self.driver.confirm_migration(context, migration, instance,"},{"line_number":4048,"context_line":"                                      network_info)"},{"line_number":4049,"context_line":""},{"line_number":4050,"context_line":"        # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":4051,"context_line":"        self.driver.confirm_migration(context, migration, instance,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_717a2a89","line":4048,"range":{"start_line":4045,"start_character":0,"end_line":4048,"end_character":51},"updated":"2019-05-16 21:16:59.000000000","message":"Duplicated L4050-2, assume that\u0027s a mistake.","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"34ea7ba76b453bd241bc27cb92642775a8dbe703","unresolved":false,"context_lines":[{"line_number":4042,"context_line":"                       get_pci_mapping_for_migration(True))"},{"line_number":4043,"context_line":"        network_info \u003d self._get_updated_nw_info_with_pci_mapping("},{"line_number":4044,"context_line":"            network_info, pci_mapping)"},{"line_number":4045,"context_line":""},{"line_number":4046,"context_line":"        # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":4047,"context_line":"        self.driver.confirm_migration(context, migration, instance,"},{"line_number":4048,"context_line":"                                      network_info)"},{"line_number":4049,"context_line":""},{"line_number":4050,"context_line":"        # TODO(mriedem): Get BDMs here and pass them to the driver."},{"line_number":4051,"context_line":"        self.driver.confirm_migration(context, migration, instance,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_d0d73723","line":4048,"range":{"start_line":4045,"start_character":0,"end_line":4048,"end_character":51},"in_reply_to":"bfb3d3c7_717a2a89","updated":"2019-05-19 15:21:16.000000000","message":"Yes, this is a mistake, probably creeped in here during one of the rebases :(","commit_id":"c6d1d6861c78ba8c2e3d8929c4578b0f44313675"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"34edaa7ce31384908352c018baad3450cfb2a737","unresolved":false,"context_lines":[{"line_number":4011,"context_line":"                                   \u0027orig_val\u0027: vif_pci_addr,"},{"line_number":4012,"context_line":"                                   \u0027new_val\u0027: new_addr})"},{"line_number":4013,"context_line":"                    except (KeyError, AttributeError) as e:"},{"line_number":4014,"context_line":"                        # NOTE(adrianc): This should never happen. If we get"},{"line_number":4015,"context_line":"                        # here it means there is some inconsistency with"},{"line_number":4016,"context_line":"                        # either \u0027nw_info\u0027 or \u0027pci_mapping\u0027."},{"line_number":4017,"context_line":"                        LOG.error(\"Unexpected error when updating network \""},{"line_number":4018,"context_line":"                                  \"information with PCI mapping.\")"},{"line_number":4019,"context_line":"                        raise e"},{"line_number":4020,"context_line":"        return updated_nw_info"},{"line_number":4021,"context_line":""},{"line_number":4022,"context_line":"    def _confirm_resize(self, context, instance, migration\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_44d05ff8","line":4019,"range":{"start_line":4014,"start_character":0,"end_line":4019,"end_character":31},"updated":"2019-05-20 15:20:43.000000000","message":"This should be spelled:\n\n with excutils.save_and_reraise_exception():\n     LOG.error(...)","commit_id":"b1f34494f83216a95b0a82c1441e14c916c14b08"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"fb825ea4fcbb32859f01381fd61478f137e92d8d","unresolved":false,"context_lines":[{"line_number":4011,"context_line":"                                   \u0027orig_val\u0027: vif_pci_addr,"},{"line_number":4012,"context_line":"                                   \u0027new_val\u0027: new_addr})"},{"line_number":4013,"context_line":"                    except (KeyError, AttributeError) as e:"},{"line_number":4014,"context_line":"                        # NOTE(adrianc): This should never happen. If we get"},{"line_number":4015,"context_line":"                        # here it means there is some inconsistency with"},{"line_number":4016,"context_line":"                        # either \u0027nw_info\u0027 or \u0027pci_mapping\u0027."},{"line_number":4017,"context_line":"                        LOG.error(\"Unexpected error when updating network \""},{"line_number":4018,"context_line":"                                  \"information with PCI mapping.\")"},{"line_number":4019,"context_line":"                        raise e"},{"line_number":4020,"context_line":"        return updated_nw_info"},{"line_number":4021,"context_line":""},{"line_number":4022,"context_line":"    def _confirm_resize(self, context, instance, migration\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_70f519cb","line":4019,"range":{"start_line":4014,"start_character":0,"end_line":4019,"end_character":31},"in_reply_to":"bfb3d3c7_44d05ff8","updated":"2019-05-20 17:43:10.000000000","message":"Done","commit_id":"b1f34494f83216a95b0a82c1441e14c916c14b08"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"daaea709b175ab6e68150b6fbdb440dd19f80e3d","unresolved":false,"context_lines":[{"line_number":4013,"context_line":"        # NOTE(tr3buchet): tear down networks on source host"},{"line_number":4014,"context_line":"        self.network_api.setup_networks_on_host(context, instance,"},{"line_number":4015,"context_line":"                           migration.source_compute, teardown\u003dTrue)"},{"line_number":4016,"context_line":""},{"line_number":4017,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context,"},{"line_number":4018,"context_line":"                                                             instance)"},{"line_number":4019,"context_line":"        # TODO(mriedem): Get BDMs here and pass them to the driver."}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_f8122458","side":"PARENT","line":4016,"updated":"2019-05-22 16:26:30.000000000","message":"nit: unrelated change","commit_id":"5a1c385b996090b80f5881680e04c88abc21828a"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1d49fb71794c2e8b91fc3b0765ead4d514914d6a","unresolved":false,"context_lines":[{"line_number":4013,"context_line":"        # NOTE(tr3buchet): tear down networks on source host"},{"line_number":4014,"context_line":"        self.network_api.setup_networks_on_host(context, instance,"},{"line_number":4015,"context_line":"                           migration.source_compute, teardown\u003dTrue)"},{"line_number":4016,"context_line":""},{"line_number":4017,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context,"},{"line_number":4018,"context_line":"                                                             instance)"},{"line_number":4019,"context_line":"        # TODO(mriedem): Get BDMs here and pass them to the driver."}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_29bce6b9","side":"PARENT","line":4016,"in_reply_to":"bfb3d3c7_f8122458","updated":"2019-05-23 08:50:25.000000000","message":"yea, creeped in by mistake, ill remove. \n(lets see if changes are required for unit-test)","commit_id":"5a1c385b996090b80f5881680e04c88abc21828a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e32f5406533a40215a0227b440a9841c5af83e7","unresolved":false,"context_lines":[{"line_number":4043,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context,"},{"line_number":4044,"context_line":"                                                             instance)"},{"line_number":4045,"context_line":""},{"line_number":4046,"context_line":"        # NOTE(adrianc): Populate old PCI device in VIF profile"},{"line_number":4047,"context_line":"        # to allow virt driver to properly unplug it from Hypervisor."},{"line_number":4048,"context_line":"        pci_mapping \u003d (instance.migration_context."},{"line_number":4049,"context_line":"                       get_pci_mapping_for_migration(True))"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_48d5641b","line":4046,"updated":"2019-06-10 21:46:55.000000000","message":"I will likely need some help in figuring out what I need to do about this for cross-cell resize:\n\nhttps://review.opendev.org/#/c/637058/32/nova/compute/manager.py@4166","commit_id":"000e93df09fd4941bb69f715c955b940871a1ec6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41affe7ef214d10720fa02820f9cf25e361d23dc","unresolved":false,"context_lines":[{"line_number":4046,"context_line":"        # NOTE(adrianc): Populate old PCI device in VIF profile"},{"line_number":4047,"context_line":"        # to allow virt driver to properly unplug it from Hypervisor."},{"line_number":4048,"context_line":"        pci_mapping \u003d (instance.migration_context."},{"line_number":4049,"context_line":"                       get_pci_mapping_for_migration(True))"},{"line_number":4050,"context_line":"        network_info \u003d self._get_updated_nw_info_with_pci_mapping("},{"line_number":4051,"context_line":"            network_info, pci_mapping)"},{"line_number":4052,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_8830e1a0","line":4049,"range":{"start_line":4049,"start_character":53,"end_line":4049,"end_character":57},"updated":"2019-06-10 21:30:11.000000000","message":"nit: would have been useful to pass revert\u003dTrue so people don\u0027t have to look at the method itself to know what this parameter is.","commit_id":"000e93df09fd4941bb69f715c955b940871a1ec6"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"daaea709b175ab6e68150b6fbdb440dd19f80e3d","unresolved":false,"context_lines":[{"line_number":5819,"context_line":"                                       product_id\u003d\u00270047\u0027,"},{"line_number":5820,"context_line":"                                       address\u003d\u00270000:0b:00.1\u0027,"},{"line_number":5821,"context_line":"                                       request_id\u003duuids.req2)])"},{"line_number":5822,"context_line":""},{"line_number":5823,"context_line":"        if expected_pci_addr \u003d\u003d old_pci_devices[0].address:"},{"line_number":5824,"context_line":"            expected_pci_device \u003d old_pci_devices[0]"},{"line_number":5825,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_5881f049","line":5822,"updated":"2019-05-22 16:26:30.000000000","message":"Can we assert in this test that the changes in the network info is made during the resize confirm?","commit_id":"000e93df09fd4941bb69f715c955b940871a1ec6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1d49fb71794c2e8b91fc3b0765ead4d514914d6a","unresolved":false,"context_lines":[{"line_number":5819,"context_line":"                                       product_id\u003d\u00270047\u0027,"},{"line_number":5820,"context_line":"                                       address\u003d\u00270000:0b:00.1\u0027,"},{"line_number":5821,"context_line":"                                       request_id\u003duuids.req2)])"},{"line_number":5822,"context_line":""},{"line_number":5823,"context_line":"        if expected_pci_addr \u003d\u003d old_pci_devices[0].address:"},{"line_number":5824,"context_line":"            expected_pci_device \u003d old_pci_devices[0]"},{"line_number":5825,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_ccdd1843","line":5822,"in_reply_to":"bfb3d3c7_5881f049","updated":"2019-05-23 08:50:25.000000000","message":"we already test the changes done to network_info in test_compute_mgr.py ,test_confirm_resize_calls_virt_driver_with_old_pci, which unit tests ComputeManager._confirm_resize()\n\ndo you see an additional value of testing it here as well ?\n\ntoday this unit test does not allocate VIFs to instance, it checks freeing pci devices by resource tracker.\n(it seems to test confirm/revert resize of instance with PCI resources from flavor alias)","commit_id":"000e93df09fd4941bb69f715c955b940871a1ec6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"74a9aaae18f53a66fb3a460cf27df9022a45e65e","unresolved":false,"context_lines":[{"line_number":5819,"context_line":"                                       product_id\u003d\u00270047\u0027,"},{"line_number":5820,"context_line":"                                       address\u003d\u00270000:0b:00.1\u0027,"},{"line_number":5821,"context_line":"                                       request_id\u003duuids.req2)])"},{"line_number":5822,"context_line":""},{"line_number":5823,"context_line":"        if expected_pci_addr \u003d\u003d old_pci_devices[0].address:"},{"line_number":5824,"context_line":"            expected_pci_device \u003d old_pci_devices[0]"},{"line_number":5825,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_876b601c","line":5822,"in_reply_to":"bfb3d3c7_ccdd1843","updated":"2019-05-24 11:44:58.000000000","message":"Thanks for the explanation. Coverage seems OK to me then.","commit_id":"000e93df09fd4941bb69f715c955b940871a1ec6"}]}
