)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"066f8740fbc557a3e87ab8f728011d2b5e7a442a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"808bee09_07ebcdb5","updated":"2022-10-17 12:03:48.000000000","message":"bug fixed in a follow up","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"42763bd928aed5e93582a9aa699e33e3a984c3c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"8a3d6880_e6ec637a","updated":"2022-12-09 17:32:49.000000000","message":"ok look like i stopped reviewing here a month ago.\nill start this fresh again on monday so but ill just push the comments i had pending in gerrit.\n","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a324e04bf6747ee0247e2e425798f96c55e2a66f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"cf72d4b2_f06e9bff","updated":"2022-12-13 15:54:05.000000000","message":"this seams ok over all but can you respond to the commntes i left inline","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5c8ec59809ae8d54d56878abe714fe9e23c84dd9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"d8c66d9e_cc3245aa","updated":"2022-12-21 15:44:04.000000000","message":"I lost the +A during the rebased that remove a patch from the series that needs further discussion. So I\u0027m put the +A back.","commit_id":"f86f1800f05f42b44e99f565e9718692ee190df5"}],"nova/compute/manager.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41e4482b32635b8b8648135c64ed581d5963d602","unresolved":true,"context_lines":[{"line_number":2472,"context_line":"        if provider_mapping:"},{"line_number":2473,"context_line":"            try:"},{"line_number":2474,"context_line":"                compute_utils\\"},{"line_number":2475,"context_line":"                    .update_pci_request_with_placement_allocations("},{"line_number":2476,"context_line":"                        context, self.reportclient,"},{"line_number":2477,"context_line":"                        instance.pci_requests.requests, provider_mapping)"},{"line_number":2478,"context_line":"            except (exception.AmbiguousResourceProviderForPCIRequest,"}],"source_content_type":"text/x-python","patch_set":14,"id":"ac431904_bb5595fe","line":2475,"updated":"2022-12-20 17:09:01.000000000","message":"nit: fits on one line again (same for below)","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d373e863a6eb8d77cbff32c96c1c8c3717d83acb","unresolved":false,"context_lines":[{"line_number":2472,"context_line":"        if provider_mapping:"},{"line_number":2473,"context_line":"            try:"},{"line_number":2474,"context_line":"                compute_utils\\"},{"line_number":2475,"context_line":"                    .update_pci_request_with_placement_allocations("},{"line_number":2476,"context_line":"                        context, self.reportclient,"},{"line_number":2477,"context_line":"                        instance.pci_requests.requests, provider_mapping)"},{"line_number":2478,"context_line":"            except (exception.AmbiguousResourceProviderForPCIRequest,"}],"source_content_type":"text/x-python","patch_set":14,"id":"eedb5c96_83ff77d3","line":2475,"in_reply_to":"ac431904_bb5595fe","updated":"2022-12-21 15:41:02.000000000","message":"Done in the FUP https://review.opendev.org/c/openstack/nova/+/862876","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41e4482b32635b8b8648135c64ed581d5963d602","unresolved":true,"context_lines":[{"line_number":6901,"context_line":"                update \u003d ("},{"line_number":6902,"context_line":"                    compute_utils."},{"line_number":6903,"context_line":"                    update_pci_request_with_placement_allocations)"},{"line_number":6904,"context_line":"                update("},{"line_number":6905,"context_line":"                    context, self.reportclient, instance.pci_requests.requests,"},{"line_number":6906,"context_line":"                    provider_mappings)"},{"line_number":6907,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"dd95a84c_a36f7e6b","line":6904,"updated":"2022-12-20 17:09:01.000000000","message":"don\u0027t need the alias here (it\u0027ll fit on one line now)","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d373e863a6eb8d77cbff32c96c1c8c3717d83acb","unresolved":false,"context_lines":[{"line_number":6901,"context_line":"                update \u003d ("},{"line_number":6902,"context_line":"                    compute_utils."},{"line_number":6903,"context_line":"                    update_pci_request_with_placement_allocations)"},{"line_number":6904,"context_line":"                update("},{"line_number":6905,"context_line":"                    context, self.reportclient, instance.pci_requests.requests,"},{"line_number":6906,"context_line":"                    provider_mappings)"},{"line_number":6907,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"6bc4e7ca_f881916a","line":6904,"in_reply_to":"dd95a84c_a36f7e6b","updated":"2022-12-21 15:41:02.000000000","message":"Done","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41e4482b32635b8b8648135c64ed581d5963d602","unresolved":true,"context_lines":[{"line_number":7986,"context_line":"            update \u003d ("},{"line_number":7987,"context_line":"                compute_utils."},{"line_number":7988,"context_line":"                update_pci_request_with_placement_allocations)"},{"line_number":7989,"context_line":"            update("},{"line_number":7990,"context_line":"                context, self.reportclient, pci_reqs.requests,"},{"line_number":7991,"context_line":"                provider_mappings)"},{"line_number":7992,"context_line":"        except ("}],"source_content_type":"text/x-python","patch_set":14,"id":"1def0fa3_5e130286","line":7989,"updated":"2022-12-20 17:09:01.000000000","message":"ditto","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d373e863a6eb8d77cbff32c96c1c8c3717d83acb","unresolved":false,"context_lines":[{"line_number":7986,"context_line":"            update \u003d ("},{"line_number":7987,"context_line":"                compute_utils."},{"line_number":7988,"context_line":"                update_pci_request_with_placement_allocations)"},{"line_number":7989,"context_line":"            update("},{"line_number":7990,"context_line":"                context, self.reportclient, pci_reqs.requests,"},{"line_number":7991,"context_line":"                provider_mappings)"},{"line_number":7992,"context_line":"        except ("}],"source_content_type":"text/x-python","patch_set":14,"id":"21c15eb9_611203ef","line":7989,"in_reply_to":"1def0fa3_5e130286","updated":"2022-12-21 15:41:02.000000000","message":"Done","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"}],"nova/compute/utils.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ed55ce7a88b9e858a11a8adf563cc811563169aa","unresolved":true,"context_lines":[{"line_number":1536,"context_line":"            for spec in pci_request.spec:"},{"line_number":1537,"context_line":"                # FIXME(gibi): this is baaad but spec is a dict of strings so"},{"line_number":1538,"context_line":"                #  we need to serialize"},{"line_number":1539,"context_line":"                spec[\u0027rp_uuids\u0027] \u003d \u0027,\u0027.join(set(mapping.values()))"},{"line_number":1540,"context_line":""},{"line_number":1541,"context_line":"        elif needs_update_due_to_qos(pci_request, provider_mapping):"},{"line_number":1542,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"8f49b8f8_b1290b35","line":1539,"range":{"start_line":1539,"start_character":44,"end_line":1539,"end_character":47},"updated":"2022-08-31 08:41:51.000000000","message":"we need to change this. Either the count per RP needs to be stored or simply need to repeate an RP (i.e. drop the set()).","commit_id":"e7752b8093b3ea30e33bc06617ef4afba8a0e51c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b691bc1858996a59aa09bb8c97071b397efb8d3f","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"            for spec in pci_request.spec:"},{"line_number":1537,"context_line":"                # FIXME(gibi): this is baaad but spec is a dict of strings so"},{"line_number":1538,"context_line":"                #  we need to serialize"},{"line_number":1539,"context_line":"                spec[\u0027rp_uuids\u0027] \u003d \u0027,\u0027.join(set(mapping.values()))"},{"line_number":1540,"context_line":""},{"line_number":1541,"context_line":"        elif needs_update_due_to_qos(pci_request, provider_mapping):"},{"line_number":1542,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"43e8e9ef_b8de9801","line":1539,"range":{"start_line":1539,"start_character":44,"end_line":1539,"end_character":47},"in_reply_to":"8f49b8f8_b1290b35","updated":"2022-09-02 13:28:52.000000000","message":"Done","commit_id":"e7752b8093b3ea30e33bc06617ef4afba8a0e51c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"42763bd928aed5e93582a9aa699e33e3a984c3c2","unresolved":true,"context_lines":[{"line_number":1538,"context_line":"                #  we need to serialize"},{"line_number":1539,"context_line":"                spec[\u0027rp_uuids\u0027] \u003d \u0027,\u0027.join(set(mapping.values()))"},{"line_number":1540,"context_line":""},{"line_number":1541,"context_line":"        elif needs_update_due_to_qos(pci_request, provider_mapping):"},{"line_number":1542,"context_line":""},{"line_number":1543,"context_line":"            provider_uuids \u003d provider_mapping[pci_request.requester_id]"},{"line_number":1544,"context_line":"            if len(provider_uuids) !\u003d 1:"}],"source_content_type":"text/x-python","patch_set":14,"id":"92e0f860_71163833","line":1541,"range":{"start_line":1541,"start_character":7,"end_line":1541,"end_character":12},"updated":"2022-12-09 17:32:49.000000000","message":"elif or if?\n\ni guess elfi because for each pci request today we will either need to update teh grouping based on the pci request or neutron \n\nin the future this will be an if when we track pci in placment because we need to update it for both in some form right.\n\nwhen we figure out how to do that.\n\nso for now i think you have the correct logic","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"95f1b0ad4a4a5f4fcad875746b3baf5ad259043c","unresolved":false,"context_lines":[{"line_number":1538,"context_line":"                #  we need to serialize"},{"line_number":1539,"context_line":"                spec[\u0027rp_uuids\u0027] \u003d \u0027,\u0027.join(set(mapping.values()))"},{"line_number":1540,"context_line":""},{"line_number":1541,"context_line":"        elif needs_update_due_to_qos(pci_request, provider_mapping):"},{"line_number":1542,"context_line":""},{"line_number":1543,"context_line":"            provider_uuids \u003d provider_mapping[pci_request.requester_id]"},{"line_number":1544,"context_line":"            if len(provider_uuids) !\u003d 1:"}],"source_content_type":"text/x-python","patch_set":14,"id":"451b98b7_190ce556","line":1541,"range":{"start_line":1541,"start_character":7,"end_line":1541,"end_character":12},"in_reply_to":"92e0f860_71163833","updated":"2022-12-15 10:40:42.000000000","message":"You are correct. It is elif as PCI in placement does not support neutron based requests yet.","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"}],"nova/pci/stats.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"42763bd928aed5e93582a9aa699e33e3a984c3c2","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    # these are metadata keys in the pool and in the request that are matched"},{"line_number":73,"context_line":"    # specially in _filter_pools_based_on_placement_allocation. So we can"},{"line_number":74,"context_line":"    # ignore them in the general matching logic."},{"line_number":75,"context_line":"    ignored_tags +\u003d [\u0027rp_uuid\u0027, \u0027rp_uuids\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def __init__("},{"line_number":78,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":14,"id":"e321bdc8_df9eb5a0","line":75,"updated":"2022-12-09 17:32:49.000000000","message":"will we somethime have both \u0027rp_uuid\u0027 and \u0027rp_uuids\u0027\n\nis this related to the pool spliting?\n\nim not entirly sure why we would neeed the list form\nbut maybe we do?\n\nis this related to qos in anyway or soemthing else?","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c1c5c701a215e1e379583934b25d90f461f28079","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    # these are metadata keys in the pool and in the request that are matched"},{"line_number":73,"context_line":"    # specially in _filter_pools_based_on_placement_allocation. So we can"},{"line_number":74,"context_line":"    # ignore them in the general matching logic."},{"line_number":75,"context_line":"    ignored_tags +\u003d [\u0027rp_uuid\u0027, \u0027rp_uuids\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def __init__("},{"line_number":78,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":14,"id":"de3e964d_e58bcdaa","line":75,"in_reply_to":"56736756_b84d2b31","updated":"2022-12-15 11:42:28.000000000","message":"so we talked about this a little more on IRC and basically i agreed to proceed with this for now by upgrading to +2 and ask stephen to weigh in on this when they get to this point.\n\n\ni think in either case this patch can merge as is, the question for you stephen is basically this. ignored_tags is currently applied to filter the tags in both the pool object and the spec\n\nthe pool only has one uuid in rp_uuid where as the spec can have a list\nof them  in rp_uuids. should we plit this array of ignored tags based on the type they will filter or is it fine to keep this as is.\n\nit was not clear to me that this was why it contained both but i understand why gibi did it this way so either i think we are fine to split this in a follow up or leave it as is. perhaps with a note to capture this.","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41e4482b32635b8b8648135c64ed581d5963d602","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    # these are metadata keys in the pool and in the request that are matched"},{"line_number":73,"context_line":"    # specially in _filter_pools_based_on_placement_allocation. So we can"},{"line_number":74,"context_line":"    # ignore them in the general matching logic."},{"line_number":75,"context_line":"    ignored_tags +\u003d [\u0027rp_uuid\u0027, \u0027rp_uuids\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def __init__("},{"line_number":78,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3defc7a2_d51d1e95","line":75,"in_reply_to":"62963e20_4485d8e4","updated":"2022-12-20 17:09:01.000000000","message":"Yeah, thanks. With the FUP this is much clearer.","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c1d6842ed082dad4ac862374989cf3dc42a55305","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    # these are metadata keys in the pool and in the request that are matched"},{"line_number":73,"context_line":"    # specially in _filter_pools_based_on_placement_allocation. So we can"},{"line_number":74,"context_line":"    # ignore them in the general matching logic."},{"line_number":75,"context_line":"    ignored_tags +\u003d [\u0027rp_uuid\u0027, \u0027rp_uuids\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def __init__("},{"line_number":78,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":14,"id":"62963e20_4485d8e4","line":75,"in_reply_to":"de3e964d_e58bcdaa","updated":"2022-12-16 15:24:31.000000000","message":"FUPped in  https://review.opendev.org/c/openstack/nova/+/867978","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"95f1b0ad4a4a5f4fcad875746b3baf5ad259043c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    # these are metadata keys in the pool and in the request that are matched"},{"line_number":73,"context_line":"    # specially in _filter_pools_based_on_placement_allocation. So we can"},{"line_number":74,"context_line":"    # ignore them in the general matching logic."},{"line_number":75,"context_line":"    ignored_tags +\u003d [\u0027rp_uuid\u0027, \u0027rp_uuids\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def __init__("},{"line_number":78,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":14,"id":"56736756_b84d2b31","line":75,"in_reply_to":"e321bdc8_df9eb5a0","updated":"2022-12-15 10:40:42.000000000","message":"* rp_uuid is in the pool: Pools are split so that a single pool has one RP only so there we are good to have a single RP uuid stored.\n* rp_uuids is in the spec: A spec with a count\u003d2 might be fulfilled from two different RPs so we need a list of RP uuids per spec","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"}],"nova/tests/unit/pci/test_stats.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a324e04bf6747ee0247e2e425798f96c55e2a66f","unresolved":true,"context_lines":[{"line_number":1381,"context_line":"        # pf3 is not available in the pools anymore"},{"line_number":1382,"context_line":"        self.assertEqual("},{"line_number":1383,"context_line":"            {uuids.pf1, uuids.pf2, uuids.pci1},"},{"line_number":1384,"context_line":"            {pool[\u0027rp_uuid\u0027] for pool in self.pci_stats.pools},"},{"line_number":1385,"context_line":"        )"},{"line_number":1386,"context_line":""},{"line_number":1387,"context_line":"    def test_consume_restricted_by_allocation(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"76e342d4_18e6ea4e","line":1384,"range":{"start_line":1384,"start_character":13,"end_line":1384,"end_character":28},"updated":"2022-12-13 15:54:05.000000000","message":"so you have used pool[\u0027rp_uuid\u0027] hwere but its still not 100% clear to me why the pool has both rp_uuid and rp_uuids?","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"95f1b0ad4a4a5f4fcad875746b3baf5ad259043c","unresolved":false,"context_lines":[{"line_number":1381,"context_line":"        # pf3 is not available in the pools anymore"},{"line_number":1382,"context_line":"        self.assertEqual("},{"line_number":1383,"context_line":"            {uuids.pf1, uuids.pf2, uuids.pci1},"},{"line_number":1384,"context_line":"            {pool[\u0027rp_uuid\u0027] for pool in self.pci_stats.pools},"},{"line_number":1385,"context_line":"        )"},{"line_number":1386,"context_line":""},{"line_number":1387,"context_line":"    def test_consume_restricted_by_allocation(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"c058dcc8_8d9b161e","line":1384,"range":{"start_line":1384,"start_character":13,"end_line":1384,"end_character":28},"in_reply_to":"76e342d4_18e6ea4e","updated":"2022-12-15 10:40:42.000000000","message":"The pool has rp_uuid, the spec has rp_uuids.","commit_id":"18c4def3042b54eee4aa4c20a754e6614d1054b6"}]}
