)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a6718d42d5cca987056170731ba49e451bc3a6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e6628af0_99b9cf46","updated":"2022-08-30 14:15:31.000000000","message":"+1 pending question regarding import","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a4d3aa41040d36c13e0c42a7e579228fce416d4c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"fe599072_c2194f45","updated":"2022-09-01 16:16:25.000000000","message":"Let\u0027s stop here for Zed. The patches above are fairly feature complete (except one bug) but we run out of time in Zed to land them. Continue from here in AA.","commit_id":"45f01d7d8882726c24ec86311d9f393669edf473"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f0dd52b8cbcef462fce212dd42cbde82f8ab6b07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"27c507be_89f2a6a6","updated":"2022-09-02 12:38:49.000000000","message":"Let\u0027s stop here for Zed. The patches above are fairly feature complete (except one bug) but we run out of time in Zed to land them. Continue from here in AA.","commit_id":"8dea93ca45e8687080f15c9eaa7f3a9f7c57380d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dfc51baef71eb8fc6d3c847550f71a2e3343bfb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"4bf65817_2f2b64ce","updated":"2022-10-27 13:43:44.000000000","message":"im going to hold +2 on this until the repoposed spec is merged but this looks ok to me overall","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b1f4b8072487ca5c769129e34f353c3e2a97972b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"b377f59e_f7a3966a","updated":"2022-12-13 15:42:58.000000000","message":"lets proceed with the first 5 patches in the series\n\nthat gets us to the point where filters can start filtering on allocation candiates if they want too so that seams like a good point to split at \n\n","commit_id":"745921338c8338e39267dce2cdf8877877326212"}],"nova/objects/request_spec.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"df36bf1bb2c8f29bf48220e93c085610651fc6b3","unresolved":true,"context_lines":[{"line_number":532,"context_line":"            # VF type requests. Therefore we need to generate one RequestGroup"},{"line_number":533,"context_line":"            # per requested device. So for InstancePCIRequest(count\u003d2) we need"},{"line_number":534,"context_line":"            # to generate two separate RequestGroup(RC:1) objects."},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"            # FIXME(gibi): make sure that if we have count\u003d2 requests then"},{"line_number":537,"context_line":"            #  group_policy\u003dnone is in the request as group_policy\u003disolate"},{"line_number":538,"context_line":"            #  would prevent allocating two VFs from the same PF."}],"source_content_type":"text/x-python","patch_set":10,"id":"98f65adb_4431f173","line":535,"updated":"2022-08-29 20:23:41.000000000","message":"thanks for recording why we are spliting like this","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cc917be3cf6d1326643d635637a70ad35fcdf671","unresolved":false,"context_lines":[{"line_number":532,"context_line":"            # VF type requests. Therefore we need to generate one RequestGroup"},{"line_number":533,"context_line":"            # per requested device. So for InstancePCIRequest(count\u003d2) we need"},{"line_number":534,"context_line":"            # to generate two separate RequestGroup(RC:1) objects."},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"            # FIXME(gibi): make sure that if we have count\u003d2 requests then"},{"line_number":537,"context_line":"            #  group_policy\u003dnone is in the request as group_policy\u003disolate"},{"line_number":538,"context_line":"            #  would prevent allocating two VFs from the same PF."}],"source_content_type":"text/x-python","patch_set":10,"id":"cad61233_2ce3462c","line":535,"in_reply_to":"98f65adb_4431f173","updated":"2022-08-30 11:21:21.000000000","message":"Ack","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dfc51baef71eb8fc6d3c847550f71a2e3343bfb3","unresolved":true,"context_lines":[{"line_number":478,"context_line":"        # FIXME(gibi): refactor this and the copy of the logic from the"},{"line_number":479,"context_line":"        #  translator to a common function"},{"line_number":480,"context_line":"        # FIXME(gibi): handle directly requested resource_class"},{"line_number":481,"context_line":"        # ??? can there be more than one spec???"},{"line_number":482,"context_line":"        spec \u003d pci_request.spec[0]"},{"line_number":483,"context_line":"        rc \u003d f\"CUSTOM_PCI_{spec[\u0027vendor_id\u0027]}_{spec[\u0027product_id\u0027]}\".upper()"},{"line_number":484,"context_line":"        return rc"}],"source_content_type":"text/x-python","patch_set":13,"id":"815e5380_094e187b","line":481,"updated":"2022-10-27 13:43:44.000000000","message":"there is only one pci_alias extra spec but it can request multiple instnace of multiple aliases.\n\neach alias shoudl only have a singel RC however.\n\nso yes we can have mulitple spec for the flavor","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b690996762dfa258103ff9f20408ac7dd455d737","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        # FIXME(gibi): refactor this and the copy of the logic from the"},{"line_number":479,"context_line":"        #  translator to a common function"},{"line_number":480,"context_line":"        # FIXME(gibi): handle directly requested resource_class"},{"line_number":481,"context_line":"        # ??? can there be more than one spec???"},{"line_number":482,"context_line":"        spec \u003d pci_request.spec[0]"},{"line_number":483,"context_line":"        rc \u003d f\"CUSTOM_PCI_{spec[\u0027vendor_id\u0027]}_{spec[\u0027product_id\u0027]}\".upper()"},{"line_number":484,"context_line":"        return rc"}],"source_content_type":"text/x-python","patch_set":13,"id":"5e8233df_7e54029d","line":481,"in_reply_to":"4ebb7e87_6bb5923d","updated":"2022-11-07 14:59:10.000000000","message":"Ack","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"43acf3e8c197190b8680e96c2260e5796806f72f","unresolved":true,"context_lines":[{"line_number":478,"context_line":"        # FIXME(gibi): refactor this and the copy of the logic from the"},{"line_number":479,"context_line":"        #  translator to a common function"},{"line_number":480,"context_line":"        # FIXME(gibi): handle directly requested resource_class"},{"line_number":481,"context_line":"        # ??? can there be more than one spec???"},{"line_number":482,"context_line":"        spec \u003d pci_request.spec[0]"},{"line_number":483,"context_line":"        rc \u003d f\"CUSTOM_PCI_{spec[\u0027vendor_id\u0027]}_{spec[\u0027product_id\u0027]}\".upper()"},{"line_number":484,"context_line":"        return rc"}],"source_content_type":"text/x-python","patch_set":13,"id":"4ebb7e87_6bb5923d","line":481,"in_reply_to":"815e5380_094e187b","updated":"2022-10-28 09:55:23.000000000","message":"Actually no. The current code always uses a single spec pre request. See https://review.opendev.org/c/openstack/nova/+/853316/12/nova/objects/request_spec.py#509\n\nIn case a flavor asks for multiple PCI aliases each alias will be a separate PCI request with a single spec.","commit_id":"745921338c8338e39267dce2cdf8877877326212"}],"nova/scheduler/request_filter.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ba7bb34a9430d06433ff1b41bf9a39a3f5c203e6","unresolved":true,"context_lines":[{"line_number":421,"context_line":"        return False"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    for pci_request in request_spec.pci_requests.requests:"},{"line_number":424,"context_line":"        # For flavor based InstancePCIRequests there could be request with"},{"line_number":425,"context_line":"        # count \u003e 1 so we cannot create a separate request group per PCI"},{"line_number":426,"context_line":"        # request as that would mean that a PCI request with count\u003d2 needs to"},{"line_number":427,"context_line":"        # be fulfilled from the same PCI RP (i.e. same PF). So we need to"},{"line_number":428,"context_line":"        # add these requests to the unsuffixed request group to express that"},{"line_number":429,"context_line":"        # these devices can come from any RP of the tree."},{"line_number":430,"context_line":"        # For neutron based InstancePCIRequests we can use one request group"},{"line_number":431,"context_line":"        # per request as a neutron port corresponds to maximum one PCI device."},{"line_number":432,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"17559fbc_72df621c","line":429,"range":{"start_line":424,"start_character":0,"end_line":429,"end_character":57},"updated":"2022-08-16 17:32:47.000000000","message":"... and that will not work :/ as later during the PCI claim we need to know which RP a request is fulfilled so that the PCI claim also allocate the same device or allocate VFs from the same parent PF.\n\nSo we need to know which RPs are fulfilling the request. And we can have multiple requests per instance and we have to distinguish between them. \nAlso we have to handle the case where a single count \u003e 1 request are fulfilled from more than on RP.\n\nI only see one possible soluton:\n1) create individual request group for each count (use the {request_id}-{i} as a group suffix\n1.5) enforce group_policy\u003dnone to allow these groups to overlap\n2) then we will have RP mapping for each group (i.e. each request and each count)\n3) the PCI claim logic should look up the these PRs via the request\u0027s request_id and allocate devices based on the RP names that are pointing to (parent) device PCI address","commit_id":"0e3f8667f925d17c1a3a631197ce320bed5792bf"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9a91b48e78d4af8d224a142c2b064501a0e96359","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        return False"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    for pci_request in request_spec.pci_requests.requests:"},{"line_number":424,"context_line":"        # For flavor based InstancePCIRequests there could be request with"},{"line_number":425,"context_line":"        # count \u003e 1 so we cannot create a separate request group per PCI"},{"line_number":426,"context_line":"        # request as that would mean that a PCI request with count\u003d2 needs to"},{"line_number":427,"context_line":"        # be fulfilled from the same PCI RP (i.e. same PF). So we need to"},{"line_number":428,"context_line":"        # add these requests to the unsuffixed request group to express that"},{"line_number":429,"context_line":"        # these devices can come from any RP of the tree."},{"line_number":430,"context_line":"        # For neutron based InstancePCIRequests we can use one request group"},{"line_number":431,"context_line":"        # per request as a neutron port corresponds to maximum one PCI device."},{"line_number":432,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"47003fae_7863e234","line":429,"range":{"start_line":424,"start_character":0,"end_line":429,"end_character":57},"in_reply_to":"17559fbc_72df621c","updated":"2022-08-26 17:58:27.000000000","message":"Done","commit_id":"0e3f8667f925d17c1a3a631197ce320bed5792bf"}],"nova/tests/functional/libvirt/test_pci_sriov_servers.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"df36bf1bb2c8f29bf48220e93c085610651fc6b3","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class PciPlacementHealingFixture(fixtures.Fixture):"},{"line_number":47,"context_line":"    \"\"\"Allow asserting if the pci_placement_translator module needed to"},{"line_number":48,"context_line":"    heal PCI allocations. Such healing is only normal during upgrade. After"},{"line_number":49,"context_line":"    every compute is upgraded and the scheduling support of PCI tracking in"},{"line_number":50,"context_line":"    placement is enabled there should be no need to heal PCI allocations in"}],"source_content_type":"text/x-python","patch_set":10,"id":"6b45d1df_bdf29b53","line":47,"updated":"2022-08-29 20:23:41.000000000","message":"im going to need to read this back properly\nso im not going to review this properly tonight.\nill take a look again tomorrow","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"37dd70ac9660135bd76e0d5287d335e2d0b03854","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class PciPlacementHealingFixture(fixtures.Fixture):"},{"line_number":47,"context_line":"    \"\"\"Allow asserting if the pci_placement_translator module needed to"},{"line_number":48,"context_line":"    heal PCI allocations. Such healing is only normal during upgrade. After"},{"line_number":49,"context_line":"    every compute is upgraded and the scheduling support of PCI tracking in"},{"line_number":50,"context_line":"    placement is enabled there should be no need to heal PCI allocations in"}],"source_content_type":"text/x-python","patch_set":10,"id":"cd59b19f_c0008e6b","line":47,"in_reply_to":"6b45d1df_bdf29b53","updated":"2022-08-30 16:34:26.000000000","message":"Ack","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a6718d42d5cca987056170731ba49e451bc3a6a","unresolved":true,"context_lines":[{"line_number":62,"context_line":"    def setUp(self):"},{"line_number":63,"context_line":"        super().setUp()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        from nova.compute import pci_placement_translator"},{"line_number":66,"context_line":"        orig \u003d pci_placement_translator.update_provider_tree_for_pci"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        def wrapped_update("}],"source_content_type":"text/x-python","patch_set":10,"id":"ab61a35a_ef3c5331","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":57},"updated":"2022-08-30 14:15:31.000000000","message":"can this be imported normally instead?\n\nim not seeing a reason to import it inline as we normally only do this to prevent cuircular imports\n\nis this needed to workaround other fixutres or something?\nif so can you add a comment to that effect?","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"37dd70ac9660135bd76e0d5287d335e2d0b03854","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def setUp(self):"},{"line_number":63,"context_line":"        super().setUp()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        from nova.compute import pci_placement_translator"},{"line_number":66,"context_line":"        orig \u003d pci_placement_translator.update_provider_tree_for_pci"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        def wrapped_update("}],"source_content_type":"text/x-python","patch_set":10,"id":"58cdf40e_72a30ad7","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":57},"in_reply_to":"aadf2b19_e99d448a","updated":"2022-08-30 16:34:26.000000000","message":"Done","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c621d778d241d4002beb9895e59eecf315bdbcd2","unresolved":true,"context_lines":[{"line_number":62,"context_line":"    def setUp(self):"},{"line_number":63,"context_line":"        super().setUp()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        from nova.compute import pci_placement_translator"},{"line_number":66,"context_line":"        orig \u003d pci_placement_translator.update_provider_tree_for_pci"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        def wrapped_update("}],"source_content_type":"text/x-python","patch_set":10,"id":"aadf2b19_e99d448a","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":57},"in_reply_to":"ab61a35a_ef3c5331","updated":"2022-08-30 15:37:04.000000000","message":"It is mistake. I will move this to the top","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a6718d42d5cca987056170731ba49e451bc3a6a","unresolved":true,"context_lines":[{"line_number":131,"context_line":"        before \u003d last_healing[0] if last_healing else None"},{"line_number":132,"context_line":"        after \u003d last_healing[1] if last_healing else None"},{"line_number":133,"context_line":"        self.assertFalse("},{"line_number":134,"context_line":"            last_healing,"},{"line_number":135,"context_line":"            \"The resource tracker needed to heal PCI allocation in placement \""},{"line_number":136,"context_line":"            \"on host %s. This should not happen in normal operation as the \""},{"line_number":137,"context_line":"            \"scheduler should create the proper allocation instead.\\n\""}],"source_content_type":"text/x-python","patch_set":10,"id":"c365fac1_f696db4d","line":134,"range":{"start_line":134,"start_character":12,"end_line":134,"end_character":24},"updated":"2022-08-30 14:15:31.000000000","message":"ok this took a few reading.\n\nthis will be None if healing has not happened otherwise it will be a tuple\n\ni would prefer if you did self.assertIsNone here but falase i guess works too since you are using it in a boolean context anyway with the if above","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"37dd70ac9660135bd76e0d5287d335e2d0b03854","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        before \u003d last_healing[0] if last_healing else None"},{"line_number":132,"context_line":"        after \u003d last_healing[1] if last_healing else None"},{"line_number":133,"context_line":"        self.assertFalse("},{"line_number":134,"context_line":"            last_healing,"},{"line_number":135,"context_line":"            \"The resource tracker needed to heal PCI allocation in placement \""},{"line_number":136,"context_line":"            \"on host %s. This should not happen in normal operation as the \""},{"line_number":137,"context_line":"            \"scheduler should create the proper allocation instead.\\n\""}],"source_content_type":"text/x-python","patch_set":10,"id":"7fb6b6fb_20ea1ac9","line":134,"range":{"start_line":134,"start_character":12,"end_line":134,"end_character":24},"in_reply_to":"b82c5889_6cea7a57","updated":"2022-08-30 16:34:26.000000000","message":"Done","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c621d778d241d4002beb9895e59eecf315bdbcd2","unresolved":true,"context_lines":[{"line_number":131,"context_line":"        before \u003d last_healing[0] if last_healing else None"},{"line_number":132,"context_line":"        after \u003d last_healing[1] if last_healing else None"},{"line_number":133,"context_line":"        self.assertFalse("},{"line_number":134,"context_line":"            last_healing,"},{"line_number":135,"context_line":"            \"The resource tracker needed to heal PCI allocation in placement \""},{"line_number":136,"context_line":"            \"on host %s. This should not happen in normal operation as the \""},{"line_number":137,"context_line":"            \"scheduler should create the proper allocation instead.\\n\""}],"source_content_type":"text/x-python","patch_set":10,"id":"b82c5889_6cea7a57","line":134,"range":{"start_line":134,"start_character":12,"end_line":134,"end_character":24},"in_reply_to":"c365fac1_f696db4d","updated":"2022-08-30 15:37:04.000000000","message":"I will fix this in a respin","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5909d19d963868f9a079ded6a7e2a33f351e112f","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                hostname,"},{"line_number":143,"context_line":"                pprint.pformat(before),"},{"line_number":144,"context_line":"                pprint.pformat(after),"},{"line_number":145,"context_line":"            ),"},{"line_number":146,"context_line":"        )"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _get_rp_by_name(self, name, rps):"}],"source_content_type":"text/x-python","patch_set":13,"id":"6402b0e9_49f690ec","line":145,"updated":"2022-12-09 16:51:05.000000000","message":"nice","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dfc51baef71eb8fc6d3c847550f71a2e3343bfb3","unresolved":true,"context_lines":[{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    def test_create_server_with_pci_dev_and_numa(self):"},{"line_number":1908,"context_line":"        \"\"\"Verifies that an instance can be booted with cpu pinning and with an"},{"line_number":1909,"context_line":"           assigned pci device."},{"line_number":1910,"context_line":"        \"\"\""},{"line_number":1911,"context_line":""},{"line_number":1912,"context_line":"        self.flags(cpu_dedicated_set\u003d\u00270-7\u0027, group\u003d\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff4412b4_bf8c2123","line":1909,"updated":"2022-10-27 13:43:44.000000000","message":"nit:  assigned pci device with legacy policy and numa info for the pci device.","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"43acf3e8c197190b8680e96c2260e5796806f72f","unresolved":false,"context_lines":[{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    def test_create_server_with_pci_dev_and_numa(self):"},{"line_number":1908,"context_line":"        \"\"\"Verifies that an instance can be booted with cpu pinning and with an"},{"line_number":1909,"context_line":"           assigned pci device."},{"line_number":1910,"context_line":"        \"\"\""},{"line_number":1911,"context_line":""},{"line_number":1912,"context_line":"        self.flags(cpu_dedicated_set\u003d\u00270-7\u0027, group\u003d\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"0039bb70_de1c5448","line":1909,"in_reply_to":"ff4412b4_bf8c2123","updated":"2022-10-28 09:55:23.000000000","message":"Done in a FUP https://review.opendev.org/c/openstack/nova/+/862876","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dfc51baef71eb8fc6d3c847550f71a2e3343bfb3","unresolved":true,"context_lines":[{"line_number":1937,"context_line":"            usages\u003d{\"0000:81:00.0\": {self.PCI_RC: 1}},"},{"line_number":1938,"context_line":"            allocations\u003d{server[\u0027id\u0027]: {\"0000:81:00.0\": {self.PCI_RC: 1}}},"},{"line_number":1939,"context_line":"        )"},{"line_number":1940,"context_line":"        self.assert_no_pci_healing(\"compute1\")"},{"line_number":1941,"context_line":""},{"line_number":1942,"context_line":"    def test_create_server_with_pci_dev_and_numa_fails(self):"},{"line_number":1943,"context_line":"        \"\"\"This test ensures that it is not possible to allocated CPU and"}],"source_content_type":"text/x-python","patch_set":13,"id":"5c4bf1b1_e0730903","line":1940,"updated":"2022-10-27 13:43:44.000000000","message":"ok so this is asserting we asked for the resouce request and its in the allcoations we got back without needing to fall back on the perodic","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"43acf3e8c197190b8680e96c2260e5796806f72f","unresolved":false,"context_lines":[{"line_number":1937,"context_line":"            usages\u003d{\"0000:81:00.0\": {self.PCI_RC: 1}},"},{"line_number":1938,"context_line":"            allocations\u003d{server[\u0027id\u0027]: {\"0000:81:00.0\": {self.PCI_RC: 1}}},"},{"line_number":1939,"context_line":"        )"},{"line_number":1940,"context_line":"        self.assert_no_pci_healing(\"compute1\")"},{"line_number":1941,"context_line":""},{"line_number":1942,"context_line":"    def test_create_server_with_pci_dev_and_numa_fails(self):"},{"line_number":1943,"context_line":"        \"\"\"This test ensures that it is not possible to allocated CPU and"}],"source_content_type":"text/x-python","patch_set":13,"id":"9bd1c69c_774ee653","line":1940,"in_reply_to":"5c4bf1b1_e0730903","updated":"2022-10-28 09:55:23.000000000","message":"Yes. We assert that nova made PCI allocation but not via the healing logic.","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dfc51baef71eb8fc6d3c847550f71a2e3343bfb3","unresolved":true,"context_lines":[{"line_number":1942,"context_line":"    def test_create_server_with_pci_dev_and_numa_fails(self):"},{"line_number":1943,"context_line":"        \"\"\"This test ensures that it is not possible to allocated CPU and"},{"line_number":1944,"context_line":"           memory resources from one NUMA node and a PCI device from another."},{"line_number":1945,"context_line":"        \"\"\""},{"line_number":1946,"context_line":""},{"line_number":1947,"context_line":"        self.flags(cpu_dedicated_set\u003d\u00270-7\u0027, group\u003d\u0027compute\u0027)"},{"line_number":1948,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"af314e97_14037454","line":1945,"updated":"2022-10-27 13:43:44.000000000","message":"nit:\n        \"\"\"This test ensures that it is not possible to allocated CPU and\n           memory resources from one NUMA node and a PCI device from another\n           if we use the legacy policy and the pci device reports numa info.\n        \"\"\"\n        \nthis is really what is happening. can you add the last line perhaps in a followup if you dont need to respin.","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"43acf3e8c197190b8680e96c2260e5796806f72f","unresolved":false,"context_lines":[{"line_number":1942,"context_line":"    def test_create_server_with_pci_dev_and_numa_fails(self):"},{"line_number":1943,"context_line":"        \"\"\"This test ensures that it is not possible to allocated CPU and"},{"line_number":1944,"context_line":"           memory resources from one NUMA node and a PCI device from another."},{"line_number":1945,"context_line":"        \"\"\""},{"line_number":1946,"context_line":""},{"line_number":1947,"context_line":"        self.flags(cpu_dedicated_set\u003d\u00270-7\u0027, group\u003d\u0027compute\u0027)"},{"line_number":1948,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"6d94a324_370fbd1b","line":1945,"in_reply_to":"af314e97_14037454","updated":"2022-10-28 09:55:23.000000000","message":"Done in a FUP https://review.opendev.org/c/openstack/nova/+/862876","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dfc51baef71eb8fc6d3c847550f71a2e3343bfb3","unresolved":true,"context_lines":[{"line_number":2214,"context_line":"        #         {\"0000:81:00.0\": {self.PCI_RC: 1}}"},{"line_number":2215,"context_line":"        # self.assert_placement_pci_view("},{"line_number":2216,"context_line":"        #     \"test_compute1\", **test_compute1_placement_pci_view)"},{"line_number":2217,"context_line":""},{"line_number":2218,"context_line":"        # TODO(stephenfin): The mock of \u0027migrate_disk_and_power_off\u0027 should"},{"line_number":2219,"context_line":"        # probably be less...dumb"},{"line_number":2220,"context_line":"        with mock.patch("}],"source_content_type":"text/x-python","patch_set":13,"id":"8baf0e69_7bbc1c70","line":2217,"updated":"2022-10-27 13:43:44.000000000","message":"ack","commit_id":"745921338c8338e39267dce2cdf8877877326212"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"43acf3e8c197190b8680e96c2260e5796806f72f","unresolved":false,"context_lines":[{"line_number":2214,"context_line":"        #         {\"0000:81:00.0\": {self.PCI_RC: 1}}"},{"line_number":2215,"context_line":"        # self.assert_placement_pci_view("},{"line_number":2216,"context_line":"        #     \"test_compute1\", **test_compute1_placement_pci_view)"},{"line_number":2217,"context_line":""},{"line_number":2218,"context_line":"        # TODO(stephenfin): The mock of \u0027migrate_disk_and_power_off\u0027 should"},{"line_number":2219,"context_line":"        # probably be less...dumb"},{"line_number":2220,"context_line":"        with mock.patch("}],"source_content_type":"text/x-python","patch_set":13,"id":"7d19fd65_46f33095","line":2217,"in_reply_to":"8baf0e69_7bbc1c70","updated":"2022-10-28 09:55:23.000000000","message":"these are fixed later in the series.","commit_id":"745921338c8338e39267dce2cdf8877877326212"}],"nova/tests/unit/objects/test_request_spec.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a6718d42d5cca987056170731ba49e451bc3a6a","unresolved":true,"context_lines":[{"line_number":484,"context_line":"            request_level_params\u003dreq_lvl_params,"},{"line_number":485,"context_line":"        )"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        self.assertEqual(2, len(spec.requested_resources))"},{"line_number":488,"context_line":"        self.assertEqual(qos_port_rg, spec.requested_resources[0])"},{"line_number":489,"context_line":"        self.assertEqual("},{"line_number":490,"context_line":"            pci_request_group.obj_to_primitive(),"}],"source_content_type":"text/x-python","patch_set":10,"id":"a7d09f2a_fc32a97b","line":487,"range":{"start_line":487,"start_character":8,"end_line":487,"end_character":58},"updated":"2022-08-30 14:15:31.000000000","message":"ack 1 for qos port and one for pci device.","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3708f05d4bca6c00a3c24988b90e43eac94d12cd","unresolved":false,"context_lines":[{"line_number":484,"context_line":"            request_level_params\u003dreq_lvl_params,"},{"line_number":485,"context_line":"        )"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        self.assertEqual(2, len(spec.requested_resources))"},{"line_number":488,"context_line":"        self.assertEqual(qos_port_rg, spec.requested_resources[0])"},{"line_number":489,"context_line":"        self.assertEqual("},{"line_number":490,"context_line":"            pci_request_group.obj_to_primitive(),"}],"source_content_type":"text/x-python","patch_set":10,"id":"1de5a800_47f0b818","line":487,"range":{"start_line":487,"start_character":8,"end_line":487,"end_character":58},"in_reply_to":"a7d09f2a_fc32a97b","updated":"2022-10-17 12:00:19.000000000","message":"Ack","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a6718d42d5cca987056170731ba49e451bc3a6a","unresolved":false,"context_lines":[{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"        spec._generate_request_groups_from_pci_requests()"},{"line_number":1168,"context_line":""},{"line_number":1169,"context_line":"        self.assertEqual(0, len(spec.requested_resources))"},{"line_number":1170,"context_line":""},{"line_number":1171,"context_line":"    def test_rc_from_product_and_vendor(self):"},{"line_number":1172,"context_line":"        spec \u003d request_spec.RequestSpec("}],"source_content_type":"text/x-python","patch_set":10,"id":"1ba9891b_7f052146","line":1169,"updated":"2022-08-30 14:15:31.000000000","message":"+1","commit_id":"7a5a7cbaf8e18dc394add3158a71d53ef3a0eb34"}]}
