)]}'
{"nova/objects/pci_device.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":355,"context_line":"                                           fields.PciDeviceStatus.UNCLAIMABLE)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        elif self.dev_type in ("},{"line_number":358,"context_line":"                fields.PciDeviceType.SRIOV_VF, fields.PciDeviceType.VDPA):"},{"line_number":359,"context_line":"            # Update VF status to CLAIMED if it\u0027s parent has not been"},{"line_number":360,"context_line":"            # previously allocated or claimed"},{"line_number":361,"context_line":"            # When claiming/allocating a VF, it\u0027s parent PF becomes"}],"source_content_type":"text/x-python","patch_set":8,"id":"43758cb6_647553c8","line":358,"updated":"2021-03-12 11:06:56.000000000","message":"style nit: I know you don\u0027t like it, but can we use:\n\n  elif self.dev_type in (\n      fields.PciDeviceType.SRIOV_VF, fields.PciDeviceType.VDPA,\n  ):\n\nhere, please? Below also","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b695f03094b809b0a4965713884b40db3cae838c","unresolved":true,"context_lines":[{"line_number":355,"context_line":"                                           fields.PciDeviceStatus.UNCLAIMABLE)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        elif self.dev_type in ("},{"line_number":358,"context_line":"                fields.PciDeviceType.SRIOV_VF, fields.PciDeviceType.VDPA):"},{"line_number":359,"context_line":"            # Update VF status to CLAIMED if it\u0027s parent has not been"},{"line_number":360,"context_line":"            # previously allocated or claimed"},{"line_number":361,"context_line":"            # When claiming/allocating a VF, it\u0027s parent PF becomes"}],"source_content_type":"text/x-python","patch_set":8,"id":"bc0d76d8_e1c8dba8","line":358,"in_reply_to":"43758cb6_647553c8","updated":"2021-03-12 11:42:33.000000000","message":"sigh :) since you have been so helpful reviewing and working on func test i fell like i own you some style nits so since im respining yes ill do this even if i i prefer it the otherway i can live with your way too.","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ed5e6e6baf94babb9a83e951165c66ee9b50ce4f","unresolved":false,"context_lines":[{"line_number":355,"context_line":"                                           fields.PciDeviceStatus.UNCLAIMABLE)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        elif self.dev_type in ("},{"line_number":358,"context_line":"                fields.PciDeviceType.SRIOV_VF, fields.PciDeviceType.VDPA):"},{"line_number":359,"context_line":"            # Update VF status to CLAIMED if it\u0027s parent has not been"},{"line_number":360,"context_line":"            # previously allocated or claimed"},{"line_number":361,"context_line":"            # When claiming/allocating a VF, it\u0027s parent PF becomes"}],"source_content_type":"text/x-python","patch_set":8,"id":"dd0fc7ba_f9903fe5","line":358,"in_reply_to":"bc0d76d8_e1c8dba8","updated":"2021-03-17 02:41:19.000000000","message":"Done","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"535486dd97e8a90e1e4d4f030b002eee50ad0b9e","unresolved":true,"context_lines":[{"line_number":361,"context_line":"            # When claiming/allocating a VF, it\u0027s parent PF becomes"},{"line_number":362,"context_line":"            # unclaimable/unavailable. Therefore, it is expected to find the"},{"line_number":363,"context_line":"            # parent PF in an unclaimable/unavailable state for any following"},{"line_number":364,"context_line":"            # claims to a sibling VF"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"            parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":367,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"8f74f0a9_57a1913c","line":364,"updated":"2021-03-12 08:51:51.000000000","message":"this comment now needs some tuning","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b695f03094b809b0a4965713884b40db3cae838c","unresolved":true,"context_lines":[{"line_number":361,"context_line":"            # When claiming/allocating a VF, it\u0027s parent PF becomes"},{"line_number":362,"context_line":"            # unclaimable/unavailable. Therefore, it is expected to find the"},{"line_number":363,"context_line":"            # parent PF in an unclaimable/unavailable state for any following"},{"line_number":364,"context_line":"            # claims to a sibling VF"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"            parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":367,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"c28a4be3_bc88310d","line":364,"in_reply_to":"8f74f0a9_57a1913c","updated":"2021-03-12 11:42:33.000000000","message":"ack.\ni didnt actully read them when i was updating ill review and amend them","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ed5e6e6baf94babb9a83e951165c66ee9b50ce4f","unresolved":false,"context_lines":[{"line_number":361,"context_line":"            # When claiming/allocating a VF, it\u0027s parent PF becomes"},{"line_number":362,"context_line":"            # unclaimable/unavailable. Therefore, it is expected to find the"},{"line_number":363,"context_line":"            # parent PF in an unclaimable/unavailable state for any following"},{"line_number":364,"context_line":"            # claims to a sibling VF"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"            parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":367,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"d522348f_38112b22","line":364,"in_reply_to":"c28a4be3_bc88310d","updated":"2021-03-17 02:41:19.000000000","message":"Done","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"161c5452b4782b26fc13ea1446719adfd21b1f7b","unresolved":true,"context_lines":[{"line_number":362,"context_line":"            # When claiming/allocating a VF, it\u0027s parent PF becomes"},{"line_number":363,"context_line":"            # unclaimable/unavailable. Therefore, it is expected to find the"},{"line_number":364,"context_line":"            # parent PF in an unclaimable/unavailable state for any following"},{"line_number":365,"context_line":"            # claims to a sibling VF"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"            parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":368,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE,"}],"source_content_type":"text/x-python","patch_set":9,"id":"af6f68b6_666ef9a8","line":365,"updated":"2021-03-12 15:09:49.000000000","message":"you missed to adapt the comment to the VDPA case. Can be fixed in a followup","commit_id":"4fd14e58e2361a2e8e50f4368c16bc2df8bd96cf"}],"nova/pci/manager.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":190,"context_line":"                dev.child_devices \u003d []"},{"line_number":191,"context_line":"                parents[dev.address] \u003d dev"},{"line_number":192,"context_line":"            elif dev.dev_type in ("},{"line_number":193,"context_line":"                    fields.PciDeviceType.SRIOV_VF, fields.PciDeviceType.VDPA):"},{"line_number":194,"context_line":"                dev.parent_device \u003d parents.get(dev.parent_addr)"},{"line_number":195,"context_line":"                if dev.parent_device:"},{"line_number":196,"context_line":"                    parents[dev.parent_addr].child_devices.append(dev)"}],"source_content_type":"text/x-python","patch_set":8,"id":"eb2be036_d2f52cbe","line":193,"updated":"2021-03-12 11:06:56.000000000","message":"ditto, pretty please","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b695f03094b809b0a4965713884b40db3cae838c","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                dev.child_devices \u003d []"},{"line_number":191,"context_line":"                parents[dev.address] \u003d dev"},{"line_number":192,"context_line":"            elif dev.dev_type in ("},{"line_number":193,"context_line":"                    fields.PciDeviceType.SRIOV_VF, fields.PciDeviceType.VDPA):"},{"line_number":194,"context_line":"                dev.parent_device \u003d parents.get(dev.parent_addr)"},{"line_number":195,"context_line":"                if dev.parent_device:"},{"line_number":196,"context_line":"                    parents[dev.parent_addr].child_devices.append(dev)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ad9bdc27_789ce3f2","line":193,"in_reply_to":"eb2be036_d2f52cbe","updated":"2021-03-12 11:42:33.000000000","message":"Ack","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"}],"nova/pci/request.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":63,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":64,"context_line":"# NOTE(sean-k-mooney): vdpa device cannot currently be use with alias based"},{"line_number":65,"context_line":"# pci passthrough so we filter it out of the allowed set of dev_types."},{"line_number":66,"context_line":"DEV_TYPES \u003d set(obj_fields.PciDeviceType.ALL) - {obj_fields.PciDeviceType.VDPA}"},{"line_number":67,"context_line":"_ALIAS_SCHEMA \u003d {"},{"line_number":68,"context_line":"    \"type\": \"object\","},{"line_number":69,"context_line":"    \"additionalProperties\": False,"}],"source_content_type":"text/x-python","patch_set":4,"id":"70829fac_a1a1ff08","line":66,"updated":"2021-03-10 17:28:30.000000000","message":"Can you just do this explicitly? It\u0027ll be more obvious and prevent issues if Nvidia come up with yet another device type in the next few years.","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":63,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":64,"context_line":"# NOTE(sean-k-mooney): vdpa device cannot currently be use with alias based"},{"line_number":65,"context_line":"# pci passthrough so we filter it out of the allowed set of dev_types."},{"line_number":66,"context_line":"DEV_TYPES \u003d set(obj_fields.PciDeviceType.ALL) - {obj_fields.PciDeviceType.VDPA}"},{"line_number":67,"context_line":"_ALIAS_SCHEMA \u003d {"},{"line_number":68,"context_line":"    \"type\": \"object\","},{"line_number":69,"context_line":"    \"additionalProperties\": False,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ec116903_dad03001","line":66,"in_reply_to":"70829fac_a1a1ff08","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"}],"nova/pci/stats.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":226,"context_line":"                    self.remove_device(vf)"},{"line_number":227,"context_line":"        elif pci_dev.dev_type in ("},{"line_number":228,"context_line":"                fields.PciDeviceType.SRIOV_VF,"},{"line_number":229,"context_line":"                fields.PciDeviceType.VDPA):"},{"line_number":230,"context_line":"            try:"},{"line_number":231,"context_line":"                parent \u003d pci_dev.parent_device"},{"line_number":232,"context_line":"                # Make sure not to decrease PF pool count if this parent has"}],"source_content_type":"text/x-python","patch_set":4,"id":"46e16482_152e2fe5","line":229,"updated":"2021-03-10 17:28:30.000000000","message":"nit:\n\n  elif pci_dev.dev_type in (\n      fields.PciDeviceType.SRIOV_VF, fields.PciDeviceType.VDPA,\n  ):","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                    self.remove_device(vf)"},{"line_number":227,"context_line":"        elif pci_dev.dev_type in ("},{"line_number":228,"context_line":"                fields.PciDeviceType.SRIOV_VF,"},{"line_number":229,"context_line":"                fields.PciDeviceType.VDPA):"},{"line_number":230,"context_line":"            try:"},{"line_number":231,"context_line":"                parent \u003d pci_dev.parent_device"},{"line_number":232,"context_line":"                # Make sure not to decrease PF pool count if this parent has"}],"source_content_type":"text/x-python","patch_set":4,"id":"088e9211_30acd41f","line":229,"in_reply_to":"46e16482_152e2fe5","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":446,"context_line":"        after_count \u003d sum([pool[\u0027count\u0027] for pool in pools])"},{"line_number":447,"context_line":"        if after_count \u003c before_count:"},{"line_number":448,"context_line":"            LOG.debug("},{"line_number":449,"context_line":"                \u0027Dropped %d devices as they are VDPA devices which we have \u0027"},{"line_number":450,"context_line":"                \u0027not requested\u0027,"},{"line_number":451,"context_line":"                before_count - after_count"},{"line_number":452,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":4,"id":"2545578d_6d54f1f7","line":449,"range":{"start_line":449,"start_character":48,"end_line":449,"end_character":52},"updated":"2021-03-10 17:28:30.000000000","message":"vDPA","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        after_count \u003d sum([pool[\u0027count\u0027] for pool in pools])"},{"line_number":447,"context_line":"        if after_count \u003c before_count:"},{"line_number":448,"context_line":"            LOG.debug("},{"line_number":449,"context_line":"                \u0027Dropped %d devices as they are VDPA devices which we have \u0027"},{"line_number":450,"context_line":"                \u0027not requested\u0027,"},{"line_number":451,"context_line":"                before_count - after_count"},{"line_number":452,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":4,"id":"c91a0734_4c4c215a","line":449,"range":{"start_line":449,"start_character":48,"end_line":449,"end_character":52},"in_reply_to":"2545578d_6d54f1f7","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8eadeae62ad624abdf2e0bd6a5d109667a7a4d1c","unresolved":true,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        In case the device is a PF, all of it\u0027s dependent VFs should"},{"line_number":219,"context_line":"        be removed from pools count, if these are present."},{"line_number":220,"context_line":"        When the device is a VF, it\u0027s parent PF pool count should be"},{"line_number":221,"context_line":"        decreased, unless it is no longer in a pool."},{"line_number":222,"context_line":"        \"\"\""},{"line_number":223,"context_line":"        if pci_dev.dev_type \u003d\u003d fields.PciDeviceType.SRIOV_PF:"}],"source_content_type":"text/x-python","patch_set":7,"id":"0a4f12a8_9ca70e9c","line":220,"range":{"start_line":220,"start_character":28,"end_line":220,"end_character":32},"updated":"2021-03-11 19:15:26.000000000","message":"VF, or a VDPA device (as that also consumes a VF)","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b22ecdffe9e9a026de385ab7e111fd29e7b9fdc","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        In case the device is a PF, all of it\u0027s dependent VFs should"},{"line_number":219,"context_line":"        be removed from pools count, if these are present."},{"line_number":220,"context_line":"        When the device is a VF, it\u0027s parent PF pool count should be"},{"line_number":221,"context_line":"        decreased, unless it is no longer in a pool."},{"line_number":222,"context_line":"        \"\"\""},{"line_number":223,"context_line":"        if pci_dev.dev_type \u003d\u003d fields.PciDeviceType.SRIOV_PF:"}],"source_content_type":"text/x-python","patch_set":7,"id":"134087b4_41cbd0f3","line":220,"range":{"start_line":220,"start_character":28,"end_line":220,"end_character":32},"in_reply_to":"0a4f12a8_9ca70e9c","updated":"2021-03-12 00:19:26.000000000","message":"Done","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8eadeae62ad624abdf2e0bd6a5d109667a7a4d1c","unresolved":true,"context_lines":[{"line_number":224,"context_line":"            vfs_list \u003d pci_dev.child_devices"},{"line_number":225,"context_line":"            if vfs_list:"},{"line_number":226,"context_line":"                for vf in vfs_list:"},{"line_number":227,"context_line":"                    self.remove_device(vf)"},{"line_number":228,"context_line":"        elif pci_dev.dev_type in ("},{"line_number":229,"context_line":"            fields.PciDeviceType.SRIOV_VF,"},{"line_number":230,"context_line":"            fields.PciDeviceType.VDPA,"}],"source_content_type":"text/x-python","patch_set":7,"id":"80312da3_4499a0c3","line":227,"updated":"2021-03-11 19:15:26.000000000","message":"does removing the VF makes the VDPAs devs unavailable as well?","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"535486dd97e8a90e1e4d4f030b002eee50ad0b9e","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            vfs_list \u003d pci_dev.child_devices"},{"line_number":225,"context_line":"            if vfs_list:"},{"line_number":226,"context_line":"                for vf in vfs_list:"},{"line_number":227,"context_line":"                    self.remove_device(vf)"},{"line_number":228,"context_line":"        elif pci_dev.dev_type in ("},{"line_number":229,"context_line":"            fields.PciDeviceType.SRIOV_VF,"},{"line_number":230,"context_line":"            fields.PciDeviceType.VDPA,"}],"source_content_type":"text/x-python","patch_set":7,"id":"f7f9b983_7658a0f9","line":227,"in_reply_to":"5af7616f_7f3e89b0","updated":"2021-03-12 08:51:51.000000000","message":"Ack","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b22ecdffe9e9a026de385ab7e111fd29e7b9fdc","unresolved":true,"context_lines":[{"line_number":224,"context_line":"            vfs_list \u003d pci_dev.child_devices"},{"line_number":225,"context_line":"            if vfs_list:"},{"line_number":226,"context_line":"                for vf in vfs_list:"},{"line_number":227,"context_line":"                    self.remove_device(vf)"},{"line_number":228,"context_line":"        elif pci_dev.dev_type in ("},{"line_number":229,"context_line":"            fields.PciDeviceType.SRIOV_VF,"},{"line_number":230,"context_line":"            fields.PciDeviceType.VDPA,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5af7616f_7f3e89b0","line":227,"in_reply_to":"80312da3_4499a0c3","updated":"2021-03-12 00:19:26.000000000","message":"as noted on irc each VF on the host will  only be represented once as either a VF or VDPA device\nif the operator creates VDPA devices for VF then we will track them as dev type \"vdpa\" instead of \"type-VF\"","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8eadeae62ad624abdf2e0bd6a5d109667a7a4d1c","unresolved":true,"context_lines":[{"line_number":351,"context_line":"    def _filter_pools_for_unrequested_vdpa_devices(self, pools, request):"},{"line_number":352,"context_line":"        \"\"\"Filter out pools with VDPA devices, unless these are required."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        This is necessary as vdpa devices require sepcial handeling and"},{"line_number":355,"context_line":"        should not be allocated to generic pci device requests."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        :param pools: A list of PCI device pool dicts"}],"source_content_type":"text/x-python","patch_set":7,"id":"f1e42b81_ab6e4190","line":354,"range":{"start_line":354,"start_character":58,"end_line":354,"end_character":67},"updated":"2021-03-11 19:15:26.000000000","message":"handling","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8eadeae62ad624abdf2e0bd6a5d109667a7a4d1c","unresolved":true,"context_lines":[{"line_number":351,"context_line":"    def _filter_pools_for_unrequested_vdpa_devices(self, pools, request):"},{"line_number":352,"context_line":"        \"\"\"Filter out pools with VDPA devices, unless these are required."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        This is necessary as vdpa devices require sepcial handeling and"},{"line_number":355,"context_line":"        should not be allocated to generic pci device requests."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        :param pools: A list of PCI device pool dicts"}],"source_content_type":"text/x-python","patch_set":7,"id":"8c7421dd_262580fa","line":354,"range":{"start_line":354,"start_character":50,"end_line":354,"end_character":57},"updated":"2021-03-11 19:15:26.000000000","message":"special","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b22ecdffe9e9a026de385ab7e111fd29e7b9fdc","unresolved":false,"context_lines":[{"line_number":351,"context_line":"    def _filter_pools_for_unrequested_vdpa_devices(self, pools, request):"},{"line_number":352,"context_line":"        \"\"\"Filter out pools with VDPA devices, unless these are required."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        This is necessary as vdpa devices require sepcial handeling and"},{"line_number":355,"context_line":"        should not be allocated to generic pci device requests."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        :param pools: A list of PCI device pool dicts"}],"source_content_type":"text/x-python","patch_set":7,"id":"d05034c6_9b0cfcc7","line":354,"range":{"start_line":354,"start_character":50,"end_line":354,"end_character":57},"in_reply_to":"8c7421dd_262580fa","updated":"2021-03-12 00:19:26.000000000","message":"Done","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b22ecdffe9e9a026de385ab7e111fd29e7b9fdc","unresolved":false,"context_lines":[{"line_number":351,"context_line":"    def _filter_pools_for_unrequested_vdpa_devices(self, pools, request):"},{"line_number":352,"context_line":"        \"\"\"Filter out pools with VDPA devices, unless these are required."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        This is necessary as vdpa devices require sepcial handeling and"},{"line_number":355,"context_line":"        should not be allocated to generic pci device requests."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        :param pools: A list of PCI device pool dicts"}],"source_content_type":"text/x-python","patch_set":7,"id":"86194626_ac3cb83b","line":354,"range":{"start_line":354,"start_character":58,"end_line":354,"end_character":67},"in_reply_to":"f1e42b81_ab6e4190","updated":"2021-03-12 00:19:26.000000000","message":"Done","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8eadeae62ad624abdf2e0bd6a5d109667a7a4d1c","unresolved":true,"context_lines":[{"line_number":404,"context_line":"            )"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        if after_count \u003c request.count:"},{"line_number":407,"context_line":"            LOG.debug(\u0027Not enough PCI devices left to satisfy request\u0027)"},{"line_number":408,"context_line":"            return None"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        # Next, let\u0027s exclude all devices that aren\u0027t on the correct NUMA node"}],"source_content_type":"text/x-python","patch_set":7,"id":"d3e2668e_c1493614","line":407,"range":{"start_line":407,"start_character":54,"end_line":407,"end_character":62},"updated":"2021-03-11 19:15:26.000000000","message":"lol, how many times I promised myself to fix this repeated typo when looked at logs :)","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"535486dd97e8a90e1e4d4f030b002eee50ad0b9e","unresolved":false,"context_lines":[{"line_number":404,"context_line":"            )"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        if after_count \u003c request.count:"},{"line_number":407,"context_line":"            LOG.debug(\u0027Not enough PCI devices left to satisfy request\u0027)"},{"line_number":408,"context_line":"            return None"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        # Next, let\u0027s exclude all devices that aren\u0027t on the correct NUMA node"}],"source_content_type":"text/x-python","patch_set":7,"id":"4a982c84_8510589d","line":407,"range":{"start_line":407,"start_character":54,"end_line":407,"end_character":62},"in_reply_to":"7e7709ed_f8f168ad","updated":"2021-03-12 08:51:51.000000000","message":"Ack","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b22ecdffe9e9a026de385ab7e111fd29e7b9fdc","unresolved":true,"context_lines":[{"line_number":404,"context_line":"            )"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        if after_count \u003c request.count:"},{"line_number":407,"context_line":"            LOG.debug(\u0027Not enough PCI devices left to satisfy request\u0027)"},{"line_number":408,"context_line":"            return None"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        # Next, let\u0027s exclude all devices that aren\u0027t on the correct NUMA node"}],"source_content_type":"text/x-python","patch_set":7,"id":"7e7709ed_f8f168ad","line":407,"range":{"start_line":407,"start_character":54,"end_line":407,"end_character":62},"in_reply_to":"d3e2668e_c1493614","updated":"2021-03-12 00:19:26.000000000","message":"that was proably stephen who fixed it when the rebased this for me. \n/me had to look at it twice to see what the typo was.","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":404,"context_line":"            )"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        if after_count \u003c request.count:"},{"line_number":407,"context_line":"            LOG.debug(\u0027Not enough PCI devices left to satisfy request\u0027)"},{"line_number":408,"context_line":"            return None"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        # Next, let\u0027s exclude all devices that aren\u0027t on the correct NUMA node"}],"source_content_type":"text/x-python","patch_set":8,"id":"47634341_0579f348","line":407,"updated":"2021-03-12 11:06:56.000000000","message":"nit: This _could_ be a separate precursor change that we can backport? If it is, we should change the above from\n\n  Dropped %s devices\n\nto\n\n  Dropped %s device(s)\n\nSince\n\n  Dropped 1 devices\n\nreads weird","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b695f03094b809b0a4965713884b40db3cae838c","unresolved":true,"context_lines":[{"line_number":404,"context_line":"            )"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        if after_count \u003c request.count:"},{"line_number":407,"context_line":"            LOG.debug(\u0027Not enough PCI devices left to satisfy request\u0027)"},{"line_number":408,"context_line":"            return None"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        # Next, let\u0027s exclude all devices that aren\u0027t on the correct NUMA node"}],"source_content_type":"text/x-python","patch_set":8,"id":"2f3e2a57_5c3f0b56","line":407,"in_reply_to":"47634341_0579f348","updated":"2021-03-12 11:42:33.000000000","message":"we could just do a follow up that did that and in the first backprot before wallaby it would just have to pick up the typo fix so im going to leave this as is for now","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"}],"nova/tests/unit/network/test_neutron.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":5805,"context_line":"        self.assertEqual(pci_requests.requests[3].spec[0][\"dev_type\"],"},{"line_number":5806,"context_line":"                         \"type-PF\")"},{"line_number":5807,"context_line":"        self.assertEqual(pci_requests.requests[5].spec[0][\"dev_type\"],"},{"line_number":5808,"context_line":"                         \"vdpa\")"},{"line_number":5809,"context_line":"        expected_results \u003d [True, False, False, True, True, True, True, True]"},{"line_number":5810,"context_line":"        self.assertEqual(expected_results, has_pci_request_id)"},{"line_number":5811,"context_line":"        # Make sure only the trusted VF has the \u0027trusted\u0027 tag set in the spec."}],"source_content_type":"text/x-python","patch_set":8,"id":"9d0e22d7_fe02a653","line":5808,"updated":"2021-03-12 11:06:56.000000000","message":"nit: this would fit on one line","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"}],"nova/tests/unit/objects/test_pci_device.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"535486dd97e8a90e1e4d4f030b002eee50ad0b9e","unresolved":true,"context_lines":[{"line_number":636,"context_line":"        devobj \u003d self.sriov_vdpa_devices[0]"},{"line_number":637,"context_line":"        devobj.claim(self.inst.uuid)"},{"line_number":638,"context_line":"        self.assertEqual(devobj.status,"},{"line_number":639,"context_line":"                            fields.PciDeviceStatus.CLAIMED)"},{"line_number":640,"context_line":"        self.assertEqual(devobj.instance_uuid,"},{"line_number":641,"context_line":"                            self.inst.uuid)"},{"line_number":642,"context_line":"        self.assertEqual(len(self.inst.pci_devices), 0)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bd8b07d6_5330595b","line":639,"updated":"2021-03-12 08:51:51.000000000","message":"strange indent. It seems it is all over the file and now copy-pasted to the new test cases too","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":636,"context_line":"        devobj \u003d self.sriov_vdpa_devices[0]"},{"line_number":637,"context_line":"        devobj.claim(self.inst.uuid)"},{"line_number":638,"context_line":"        self.assertEqual(devobj.status,"},{"line_number":639,"context_line":"                            fields.PciDeviceStatus.CLAIMED)"},{"line_number":640,"context_line":"        self.assertEqual(devobj.instance_uuid,"},{"line_number":641,"context_line":"                            self.inst.uuid)"},{"line_number":642,"context_line":"        self.assertEqual(len(self.inst.pci_devices), 0)"}],"source_content_type":"text/x-python","patch_set":8,"id":"8b782d1c_0dae1250","line":639,"in_reply_to":"239d3652_021ae01a","updated":"2021-03-12 11:06:56.000000000","message":"Yeah, don\u0027t touch the rest of the file. We can do that separately. When you\u0027re fixing this, both this and the below seem to fit on one line","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ed5e6e6baf94babb9a83e951165c66ee9b50ce4f","unresolved":true,"context_lines":[{"line_number":636,"context_line":"        devobj \u003d self.sriov_vdpa_devices[0]"},{"line_number":637,"context_line":"        devobj.claim(self.inst.uuid)"},{"line_number":638,"context_line":"        self.assertEqual(devobj.status,"},{"line_number":639,"context_line":"                            fields.PciDeviceStatus.CLAIMED)"},{"line_number":640,"context_line":"        self.assertEqual(devobj.instance_uuid,"},{"line_number":641,"context_line":"                            self.inst.uuid)"},{"line_number":642,"context_line":"        self.assertEqual(len(self.inst.pci_devices), 0)"}],"source_content_type":"text/x-python","patch_set":8,"id":"e0bf33ff_128b4532","line":639,"in_reply_to":"8b782d1c_0dae1250","updated":"2021-03-17 02:41:19.000000000","message":"wow this is worse then i tought all these werid indent fit on one line ya\nanyway fixed","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8602d23fc39de49b5c4f4fb9b9b869417cfad46b","unresolved":true,"context_lines":[{"line_number":636,"context_line":"        devobj \u003d self.sriov_vdpa_devices[0]"},{"line_number":637,"context_line":"        devobj.claim(self.inst.uuid)"},{"line_number":638,"context_line":"        self.assertEqual(devobj.status,"},{"line_number":639,"context_line":"                            fields.PciDeviceStatus.CLAIMED)"},{"line_number":640,"context_line":"        self.assertEqual(devobj.instance_uuid,"},{"line_number":641,"context_line":"                            self.inst.uuid)"},{"line_number":642,"context_line":"        self.assertEqual(len(self.inst.pci_devices), 0)"}],"source_content_type":"text/x-python","patch_set":8,"id":"239d3652_021ae01a","line":639,"in_reply_to":"bd8b07d6_5330595b","updated":"2021-03-12 10:40:53.000000000","message":"oh right i have a pep8 issue at the bottom of this file which is strange since i tough i ran it but ill fix this though out this class.\n\ni wont update the rest of the file if it extis there too but at least for this class ill fix it","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":687,"context_line":"        self.assertEqual(devobj.status,"},{"line_number":688,"context_line":"                            fields.PciDeviceStatus.ALLOCATED)"},{"line_number":689,"context_line":"        self.assertEqual(devobj.instance_uuid,"},{"line_number":690,"context_line":"                            self.inst.uuid)"},{"line_number":691,"context_line":"        self.assertEqual(len(self.inst.pci_devices), 1)"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        # check if parent device status has been changed to UNAVAILABLE"}],"source_content_type":"text/x-python","patch_set":8,"id":"8e918584_a4fc6317","line":690,"updated":"2021-03-12 11:06:56.000000000","message":"ditto","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":710,"context_line":"        self.sriov_vdpa_devices[0].status \u003d fields.PciDeviceStatus.CLAIMED"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        self.assertRaises(exception.PciDeviceVFInvalidStatus,"},{"line_number":713,"context_line":"                            devobj.claim, self.inst)"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"    def test_claim_VF_fail(self):"},{"line_number":716,"context_line":"        self._create_fake_instance()"}],"source_content_type":"text/x-python","patch_set":8,"id":"594be5be_d4279d8a","line":713,"updated":"2021-03-12 11:06:56.000000000","message":"nit:\n\n  self.assertRaises(\n      exception.PciDeviceVFInvalidStatus,\n      devobj.claim, self.inst)\n\n(or args on a single line, though I use two since it provides an obvious visual comparison between the exception and the actual call+args)","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b695f03094b809b0a4965713884b40db3cae838c","unresolved":true,"context_lines":[{"line_number":710,"context_line":"        self.sriov_vdpa_devices[0].status \u003d fields.PciDeviceStatus.CLAIMED"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        self.assertRaises(exception.PciDeviceVFInvalidStatus,"},{"line_number":713,"context_line":"                            devobj.claim, self.inst)"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"    def test_claim_VF_fail(self):"},{"line_number":716,"context_line":"        self._create_fake_instance()"}],"source_content_type":"text/x-python","patch_set":8,"id":"5d06f8f9_72a19fcd","line":713,"in_reply_to":"594be5be_d4279d8a","updated":"2021-03-12 11:42:33.000000000","message":"yep 2am brain apparently turns off indentation awareness good to know for future coding :)","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":729,"context_line":"        parent \u003d self._get_parent_by_address(devobj.parent_addr)"},{"line_number":730,"context_line":"        parent.status \u003d fields.PciDeviceStatus.CLAIMED"},{"line_number":731,"context_line":"        self.assertRaises(exception.PciDevicePFInvalidStatus,"},{"line_number":732,"context_line":"                            devobj.claim, self.inst)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    def test_allocate_PF_fail(self):"},{"line_number":735,"context_line":"        self._create_fake_instance()"}],"source_content_type":"text/x-python","patch_set":8,"id":"71fadd36_df80116e","line":732,"updated":"2021-03-12 11:06:56.000000000","message":"ditto","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":757,"context_line":"        self.sriov_vdpa_devices[0].status \u003d fields.PciDeviceStatus.CLAIMED"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        self.assertRaises(exception.PciDeviceVFInvalidStatus,"},{"line_number":760,"context_line":"                            devobj.allocate, self.inst)"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"    def test_allocate_VDPA_fail(self):"},{"line_number":763,"context_line":"        self._create_fake_instance()"}],"source_content_type":"text/x-python","patch_set":8,"id":"6a2f462c_2133b482","line":760,"updated":"2021-03-12 11:06:56.000000000","message":"ditto","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":767,"context_line":"        parent.status \u003d fields.PciDeviceStatus.CLAIMED"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        self.assertRaises(exception.PciDevicePFInvalidStatus,"},{"line_number":770,"context_line":"                            devobj.allocate, self.inst)"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"    def test_free_allocated_PF(self):"},{"line_number":773,"context_line":"        self._create_fake_instance()"}],"source_content_type":"text/x-python","patch_set":8,"id":"260ca547_381f0003","line":770,"updated":"2021-03-12 11:06:56.000000000","message":"ditto","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"}],"nova/tests/unit/pci/test_stats.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        self.vdpa_devices \u003d []"},{"line_number":632,"context_line":"        for dev in range(8):"},{"line_number":633,"context_line":"            pci_dev \u003d {\u0027compute_node_id\u0027: 1,"},{"line_number":634,"context_line":"                       \u0027address\u0027: \u00270000:82:10.%d\u0027 % dev,"},{"line_number":635,"context_line":"                       \u0027vendor_id\u0027: \u00278086\u0027,"},{"line_number":636,"context_line":"                       \u0027product_id\u0027: \u0027%d\u0027 % vf_product_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"c0a44c06_17f84616","line":633,"range":{"start_line":633,"start_character":23,"end_line":633,"end_character":24},"updated":"2021-03-10 17:28:30.000000000","message":"style nit: can you put these on their own line and avoid the massive indent?\n\n  pci_dev \u003d {\n      \u0027compute_node_id\u0027: 1,\n      ...","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        self.vdpa_devices \u003d []"},{"line_number":632,"context_line":"        for dev in range(8):"},{"line_number":633,"context_line":"            pci_dev \u003d {\u0027compute_node_id\u0027: 1,"},{"line_number":634,"context_line":"                       \u0027address\u0027: \u00270000:82:10.%d\u0027 % dev,"},{"line_number":635,"context_line":"                       \u0027vendor_id\u0027: \u00278086\u0027,"},{"line_number":636,"context_line":"                       \u0027product_id\u0027: \u0027%d\u0027 % vf_product_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fcbfd3bf_9b992a41","line":633,"range":{"start_line":633,"start_character":23,"end_line":633,"end_character":24},"in_reply_to":"c0a44c06_17f84616","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a80582e85bef08929ed9c378657ce131efaa5608","unresolved":true,"context_lines":[{"line_number":640,"context_line":"                       \u0027request_id\u0027: None,"},{"line_number":641,"context_line":"                       \u0027dev_type\u0027: fields.PciDeviceType.VDPA,"},{"line_number":642,"context_line":"                       \u0027parent_addr\u0027: \u00270000:81:00.%d\u0027 % int(dev / 4),"},{"line_number":643,"context_line":"                       \u0027numa_node\u0027: 0}"},{"line_number":644,"context_line":"            dev_obj \u003d objects.PciDevice.create(None, pci_dev)"},{"line_number":645,"context_line":"            dev_obj.parent_device \u003d self.sriov_pf_devices[int(dev / 4)]"},{"line_number":646,"context_line":"            dev_obj.parent_device.child_devices.append(dev_obj)"}],"source_content_type":"text/x-python","patch_set":7,"id":"6a01a55f_977ad0e0","line":643,"updated":"2021-03-11 16:01:00.000000000","message":"style nit: indentation could be better","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b22ecdffe9e9a026de385ab7e111fd29e7b9fdc","unresolved":true,"context_lines":[{"line_number":640,"context_line":"                       \u0027request_id\u0027: None,"},{"line_number":641,"context_line":"                       \u0027dev_type\u0027: fields.PciDeviceType.VDPA,"},{"line_number":642,"context_line":"                       \u0027parent_addr\u0027: \u00270000:81:00.%d\u0027 % int(dev / 4),"},{"line_number":643,"context_line":"                       \u0027numa_node\u0027: 0}"},{"line_number":644,"context_line":"            dev_obj \u003d objects.PciDevice.create(None, pci_dev)"},{"line_number":645,"context_line":"            dev_obj.parent_device \u003d self.sriov_pf_devices[int(dev / 4)]"},{"line_number":646,"context_line":"            dev_obj.parent_device.child_devices.append(dev_obj)"}],"source_content_type":"text/x-python","patch_set":7,"id":"cc63befc_275af0bd","line":643,"in_reply_to":"6a01a55f_977ad0e0","updated":"2021-03-12 00:19:26.000000000","message":"i could yes im not going to fix it in this patch just because of the time we have left but ya\nthis should be  on a new line and then indented less but its consistent with the other function above.\ndefinlay something that could be done in a followup","commit_id":"aaaf5b9dd2a4b84280c67d7c59dea8bc0b716706"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1caacde2a2bc139aaa19c9380c05d9132fe6dd4d","unresolved":true,"context_lines":[{"line_number":640,"context_line":"                       \u0027request_id\u0027: None,"},{"line_number":641,"context_line":"                       \u0027dev_type\u0027: fields.PciDeviceType.VDPA,"},{"line_number":642,"context_line":"                       \u0027parent_addr\u0027: \u00270000:81:00.%d\u0027 % int(dev / 4),"},{"line_number":643,"context_line":"                       \u0027numa_node\u0027: 0}"},{"line_number":644,"context_line":"            dev_obj \u003d objects.PciDevice.create(None, pci_dev)"},{"line_number":645,"context_line":"            dev_obj.parent_device \u003d self.sriov_pf_devices[int(dev / 4)]"},{"line_number":646,"context_line":"            dev_obj.parent_device.child_devices.append(dev_obj)"}],"source_content_type":"text/x-python","patch_set":8,"id":"2be05ee5_9c2f9045","line":643,"updated":"2021-03-12 11:06:56.000000000","message":"style nit: would be nice to drop the massive hanging indent\n\n  pci_dev \u003d {\n      \u0027compute_node_id\u0027: 1,\n      ...","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b695f03094b809b0a4965713884b40db3cae838c","unresolved":true,"context_lines":[{"line_number":640,"context_line":"                       \u0027request_id\u0027: None,"},{"line_number":641,"context_line":"                       \u0027dev_type\u0027: fields.PciDeviceType.VDPA,"},{"line_number":642,"context_line":"                       \u0027parent_addr\u0027: \u00270000:81:00.%d\u0027 % int(dev / 4),"},{"line_number":643,"context_line":"                       \u0027numa_node\u0027: 0}"},{"line_number":644,"context_line":"            dev_obj \u003d objects.PciDevice.create(None, pci_dev)"},{"line_number":645,"context_line":"            dev_obj.parent_device \u003d self.sriov_pf_devices[int(dev / 4)]"},{"line_number":646,"context_line":"            dev_obj.parent_device.child_devices.append(dev_obj)"}],"source_content_type":"text/x-python","patch_set":8,"id":"dae4119b_e773611b","line":643,"in_reply_to":"2be05ee5_9c2f9045","updated":"2021-03-12 11:42:33.000000000","message":"ok third time asking is the charm it seams ill fix this for this fuction correcting the other two loops","commit_id":"4921b28d3381cdd7e7ea65df607abfe01ac51594"}],"nova/tests/unit/virt/libvirt/fake_libvirt_data.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":"from collections import defaultdict"},{"line_number":13,"context_line":"from lxml import etree"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_utils import units"}],"source_content_type":"text/x-python","patch_set":4,"id":"674fd433_c5cfdb44","line":12,"updated":"2021-03-10 17:28:30.000000000","message":"style nit: missing leading newline","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":127,"context_line":"_fake_network_info \u003d fake_network.fake_get_instance_nw_info"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"# TODO(sean-k-mooney): move the rest of the static data"},{"line_number":130,"context_line":"# fake_libvirt_data and use it direclty instead of creating local"},{"line_number":131,"context_line":"# references to the common data."},{"line_number":132,"context_line":"_fake_NodeDevXml \u003d fake_libvirt_data._fake_NodeDevXml"},{"line_number":133,"context_line":"_fake_NodeDevXml_parents \u003d fake_libvirt_data._fake_NodeDevXml_parents"}],"source_content_type":"text/x-python","patch_set":4,"id":"33ed7d90_847fabfc","line":130,"range":{"start_line":130,"start_character":2,"end_line":130,"end_character":19},"updated":"2021-03-10 17:28:30.000000000","message":"*to* fake_libvirt_data ?","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":127,"context_line":"_fake_network_info \u003d fake_network.fake_get_instance_nw_info"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"# TODO(sean-k-mooney): move the rest of the static data"},{"line_number":130,"context_line":"# fake_libvirt_data and use it direclty instead of creating local"},{"line_number":131,"context_line":"# references to the common data."},{"line_number":132,"context_line":"_fake_NodeDevXml \u003d fake_libvirt_data._fake_NodeDevXml"},{"line_number":133,"context_line":"_fake_NodeDevXml_parents \u003d fake_libvirt_data._fake_NodeDevXml_parents"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf757638_8980e9c2","line":130,"range":{"start_line":130,"start_character":31,"end_line":130,"end_character":39},"updated":"2021-03-10 17:28:30.000000000","message":"directly","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":127,"context_line":"_fake_network_info \u003d fake_network.fake_get_instance_nw_info"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"# TODO(sean-k-mooney): move the rest of the static data"},{"line_number":130,"context_line":"# fake_libvirt_data and use it direclty instead of creating local"},{"line_number":131,"context_line":"# references to the common data."},{"line_number":132,"context_line":"_fake_NodeDevXml \u003d fake_libvirt_data._fake_NodeDevXml"},{"line_number":133,"context_line":"_fake_NodeDevXml_parents \u003d fake_libvirt_data._fake_NodeDevXml_parents"}],"source_content_type":"text/x-python","patch_set":4,"id":"71f6dc98_27e3fabf","line":130,"range":{"start_line":130,"start_character":2,"end_line":130,"end_character":19},"in_reply_to":"33ed7d90_847fabfc","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":127,"context_line":"_fake_network_info \u003d fake_network.fake_get_instance_nw_info"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"# TODO(sean-k-mooney): move the rest of the static data"},{"line_number":130,"context_line":"# fake_libvirt_data and use it direclty instead of creating local"},{"line_number":131,"context_line":"# references to the common data."},{"line_number":132,"context_line":"_fake_NodeDevXml \u003d fake_libvirt_data._fake_NodeDevXml"},{"line_number":133,"context_line":"_fake_NodeDevXml_parents \u003d fake_libvirt_data._fake_NodeDevXml_parents"}],"source_content_type":"text/x-python","patch_set":4,"id":"9605863a_41c6270c","line":130,"range":{"start_line":130,"start_character":31,"end_line":130,"end_character":39},"in_reply_to":"bf757638_8980e9c2","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"}],"nova/tests/unit/virt/libvirt/test_host.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":1165,"context_line":"        mock_list_all_devices.assert_called_once_with(42)"},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    def test__get_vdpa_nodedev_by_address(self):"},{"line_number":1168,"context_line":"        with mock.patch.object("},{"line_number":1169,"context_line":"            self.host.get_connection(), \"listAllDevices\") \\"},{"line_number":1170,"context_line":"                as mock_list_all_devices, \\"},{"line_number":1171,"context_line":"            mock.patch.object(self.host, \"_get_pcinet_info\") \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3002f56b_0771a318","line":1168,"updated":"2021-03-10 17:28:30.000000000","message":"you can use test.nested for this\n\n  with test.nested(\n      mock.patch.object(self.host.get_connection(), \"listAllDevices\"),\n      mock.patch.object(self.host, \"_get_pcinet_info\"),\n  ) as (mock_list_all_devices, mock_get_pci_info):","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":1165,"context_line":"        mock_list_all_devices.assert_called_once_with(42)"},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    def test__get_vdpa_nodedev_by_address(self):"},{"line_number":1168,"context_line":"        with mock.patch.object("},{"line_number":1169,"context_line":"            self.host.get_connection(), \"listAllDevices\") \\"},{"line_number":1170,"context_line":"                as mock_list_all_devices, \\"},{"line_number":1171,"context_line":"            mock.patch.object(self.host, \"_get_pcinet_info\") \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"9e4904d4_abb152b6","line":1168,"in_reply_to":"3002f56b_0771a318","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    def test__get_vdpa_nodedev_by_address(self):"},{"line_number":1168,"context_line":"        with mock.patch.object("},{"line_number":1169,"context_line":"            self.host.get_connection(), \"listAllDevices\") \\"},{"line_number":1170,"context_line":"                as mock_list_all_devices, \\"},{"line_number":1171,"context_line":"            mock.patch.object(self.host, \"_get_pcinet_info\") \\"},{"line_number":1172,"context_line":"                as get_pci_info_mock:"}],"source_content_type":"text/x-python","patch_set":4,"id":"e2e3059d_4649843a","line":1169,"range":{"start_line":1169,"start_character":12,"end_line":1169,"end_character":38},"updated":"2021-03-10 17:28:30.000000000","message":"fakelibvirt.virConnect","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    def test__get_vdpa_nodedev_by_address(self):"},{"line_number":1168,"context_line":"        with mock.patch.object("},{"line_number":1169,"context_line":"            self.host.get_connection(), \"listAllDevices\") \\"},{"line_number":1170,"context_line":"                as mock_list_all_devices, \\"},{"line_number":1171,"context_line":"            mock.patch.object(self.host, \"_get_pcinet_info\") \\"},{"line_number":1172,"context_line":"                as get_pci_info_mock:"}],"source_content_type":"text/x-python","patch_set":4,"id":"e2a8c0e0_66f770b9","line":1169,"range":{"start_line":1169,"start_character":12,"end_line":1169,"end_character":38},"in_reply_to":"e2e3059d_4649843a","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":1384,"context_line":"        pci_info \u003d ["},{"line_number":1385,"context_line":"            self._get_pcidev_info(name, dev, [], vdpa_devs) for name, dev"},{"line_number":1386,"context_line":"            in devices.items() if \"pci\" in dev.listCaps()]"},{"line_number":1387,"context_line":"        LOG.debug(f\u0027vdpa_devs:{vdpa_devs}\\npci_info:{pci_info}\u0027)"},{"line_number":1388,"context_line":"        parent_dev \u003d next("},{"line_number":1389,"context_line":"            dev for dev in pci_info if dev[\u0027address\u0027] \u003d\u003d pci_address)"},{"line_number":1390,"context_line":"        LOG.debug(f\u0027parent:{parent_dev}\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9de70964_ee943ebf","line":1387,"updated":"2021-03-10 17:28:30.000000000","message":"I assume this isn\u0027t meant to be here as is essentially a printf? If not, you need more info 😊","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":1384,"context_line":"        pci_info \u003d ["},{"line_number":1385,"context_line":"            self._get_pcidev_info(name, dev, [], vdpa_devs) for name, dev"},{"line_number":1386,"context_line":"            in devices.items() if \"pci\" in dev.listCaps()]"},{"line_number":1387,"context_line":"        LOG.debug(f\u0027vdpa_devs:{vdpa_devs}\\npci_info:{pci_info}\u0027)"},{"line_number":1388,"context_line":"        parent_dev \u003d next("},{"line_number":1389,"context_line":"            dev for dev in pci_info if dev[\u0027address\u0027] \u003d\u003d pci_address)"},{"line_number":1390,"context_line":"        LOG.debug(f\u0027parent:{parent_dev}\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7499d1bf_ffaf2790","line":1387,"in_reply_to":"9de70964_ee943ebf","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"06a86a97e02fcd934ee88fde2fc34297c15c863c","unresolved":true,"context_lines":[{"line_number":1387,"context_line":"        LOG.debug(f\u0027vdpa_devs:{vdpa_devs}\\npci_info:{pci_info}\u0027)"},{"line_number":1388,"context_line":"        parent_dev \u003d next("},{"line_number":1389,"context_line":"            dev for dev in pci_info if dev[\u0027address\u0027] \u003d\u003d pci_address)"},{"line_number":1390,"context_line":"        LOG.debug(f\u0027parent:{parent_dev}\u0027)"},{"line_number":1391,"context_line":"        vdpa_dev \u003d next("},{"line_number":1392,"context_line":"            dev for dev in vdpa_devs if dev.parent() \u003d\u003d parent_dev[\u0027dev_id\u0027])"},{"line_number":1393,"context_line":"        xmlstr \u003d vdpa_dev.XMLDesc(0)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ced7c7e_db9b143c","line":1390,"updated":"2021-03-10 17:28:30.000000000","message":"ditto","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9256418420e75e107cc91ce2d4f618c5f10f8ee4","unresolved":false,"context_lines":[{"line_number":1387,"context_line":"        LOG.debug(f\u0027vdpa_devs:{vdpa_devs}\\npci_info:{pci_info}\u0027)"},{"line_number":1388,"context_line":"        parent_dev \u003d next("},{"line_number":1389,"context_line":"            dev for dev in pci_info if dev[\u0027address\u0027] \u003d\u003d pci_address)"},{"line_number":1390,"context_line":"        LOG.debug(f\u0027parent:{parent_dev}\u0027)"},{"line_number":1391,"context_line":"        vdpa_dev \u003d next("},{"line_number":1392,"context_line":"            dev for dev in vdpa_devs if dev.parent() \u003d\u003d parent_dev[\u0027dev_id\u0027])"},{"line_number":1393,"context_line":"        xmlstr \u003d vdpa_dev.XMLDesc(0)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fe9c1cfa_8af55c53","line":1390,"in_reply_to":"5ced7c7e_db9b143c","updated":"2021-03-10 19:34:14.000000000","message":"Done","commit_id":"9af88d3389febd5f70825ad2d52869aca087ab5b"}]}
