)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0e28755a66a64e9939cbb2c3bef46c86eb1bfce5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"140be7c3_eb3f9679","updated":"2022-08-24 04:09:15.000000000","message":"in the absence of allocations against the inventories this all looks good.\n\ni suspect if we had allocations we would nnot want to allow reconfiguration but we can disucesss that later in the series on a case by case basis once you start creating allocations against the inventories","commit_id":"6d6617e1669e64ac865d566934d0b107a91eab0d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a6fc27bf68db6c5ea037ea001f1584888c69e860","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"7e874e62_e8ecfd6f","updated":"2022-08-23 18:06:32.000000000","message":"recheck volume extend failure\n\nmy brain power ran out here so ill look at this again tomorrow.\n\n","commit_id":"6d6617e1669e64ac865d566934d0b107a91eab0d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c92cb813933b5cf8833fd5b9452c397771c26b96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"b7a0f04e_6a741e39","updated":"2022-08-25 19:08:57.000000000","message":"recheck parent landed\n","commit_id":"5860541bd7ba7978d3080b2a7c5515a9db534c9b"}],"nova/compute/pci_placement_translator.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7710d4745f7b33cac92965f5a2fea6303c7c7bb","unresolved":true,"context_lines":[{"line_number":216,"context_line":"            # Also, this way if the operator sets reserved value in placement"},{"line_number":217,"context_line":"            # for the PCI inventories directly then nova will not override that"},{"line_number":218,"context_line":"            # value periodically."},{"line_number":219,"context_line":"            {self.resource_class: {\"total\": len(self.devs)}},"},{"line_number":220,"context_line":"        )"},{"line_number":221,"context_line":"        provider_tree.update_traits(self.name, self.traits)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5cbc82e8_55d00351","line":219,"range":{"start_line":219,"start_character":35,"end_line":219,"end_character":58},"updated":"2022-07-12 06:56:47.000000000","message":"I noticed this when looking at the logs you shared on irc\n\nit would be good to set max_unit\u003dtotal here\n\nill try and remember to leave that comment in the patch where this is introduced too but just and fyi this seams to be where it could be fixed. I\u0027m ok with fixing that in a followup patch later in the series too by the way.","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1626329722e9414f8a11081e7079aeb6541900e5","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            # Also, this way if the operator sets reserved value in placement"},{"line_number":217,"context_line":"            # for the PCI inventories directly then nova will not override that"},{"line_number":218,"context_line":"            # value periodically."},{"line_number":219,"context_line":"            {self.resource_class: {\"total\": len(self.devs)}},"},{"line_number":220,"context_line":"        )"},{"line_number":221,"context_line":"        provider_tree.update_traits(self.name, self.traits)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"07c302cb_321ee2e8","line":219,"range":{"start_line":219,"start_character":35,"end_line":219,"end_character":58},"in_reply_to":"5cbc82e8_55d00351","updated":"2022-07-19 18:46:50.000000000","message":"I\u0027m fairly sure that leaving it to default (int.max) is OK as placement will not allow allocating more than total even if the max_unit is set to int.max. But sure, it is a simple change, so I added it to the appropriate patch.","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7710d4745f7b33cac92965f5a2fea6303c7c7bb","unresolved":true,"context_lines":[{"line_number":227,"context_line":"                f\"traits\u003d{\u0027,\u0027.join(self.traits or set())})\""},{"line_number":228,"context_line":"            )"},{"line_number":229,"context_line":"        else:"},{"line_number":230,"context_line":"            return f\"RP({self.name}, \u003cDELETED\u003e)\""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"class PlacementView:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ddc1c3ba_f0af15fa","line":230,"range":{"start_line":230,"start_character":38,"end_line":230,"end_character":45},"updated":"2022-07-12 06:56:47.000000000","message":"nit: this will technically be the value when you have constructed the object but not yet added any child devices so we could say \"EMPTY\" or \"DELETED or EMPTY\"\n\nsince we may not have created it yet","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1626329722e9414f8a11081e7079aeb6541900e5","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                f\"traits\u003d{\u0027,\u0027.join(self.traits or set())})\""},{"line_number":228,"context_line":"            )"},{"line_number":229,"context_line":"        else:"},{"line_number":230,"context_line":"            return f\"RP({self.name}, \u003cDELETED\u003e)\""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"class PlacementView:"}],"source_content_type":"text/x-python","patch_set":4,"id":"647388cf_25a829f1","line":230,"range":{"start_line":230,"start_character":38,"end_line":230,"end_character":45},"in_reply_to":"ddc1c3ba_f0af15fa","updated":"2022-07-19 18:46:50.000000000","message":"good point. Done.","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7710d4745f7b33cac92965f5a2fea6303c7c7bb","unresolved":true,"context_lines":[{"line_number":240,"context_line":"    def _get_rp_name_for_address(self, addr: str) -\u003e str:"},{"line_number":241,"context_line":"        return f\"{self.root_rp_name}_{addr.upper()}\""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    def _ensure_rp(self, rp_name: str) -\u003e PciResourceProvider:"},{"line_number":244,"context_line":"        try:"},{"line_number":245,"context_line":"            return self.rps[rp_name]"},{"line_number":246,"context_line":"        except KeyError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"6be53632_7964b2a1","line":243,"range":{"start_line":243,"start_character":8,"end_line":243,"end_character":18},"updated":"2022-07-12 06:56:47.000000000","message":"ack I suggested in a previous patch _get_or_create_rp but ensure works for me.\nit captures that this will create the rp if its not there.","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1626329722e9414f8a11081e7079aeb6541900e5","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    def _get_rp_name_for_address(self, addr: str) -\u003e str:"},{"line_number":241,"context_line":"        return f\"{self.root_rp_name}_{addr.upper()}\""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    def _ensure_rp(self, rp_name: str) -\u003e PciResourceProvider:"},{"line_number":244,"context_line":"        try:"},{"line_number":245,"context_line":"            return self.rps[rp_name]"},{"line_number":246,"context_line":"        except KeyError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"064ddd07_e8820ec4","line":243,"range":{"start_line":243,"start_character":8,"end_line":243,"end_character":18},"in_reply_to":"6be53632_7964b2a1","updated":"2022-07-19 18:46:50.000000000","message":"Done","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0e28755a66a64e9939cbb2c3bef46c86eb1bfce5","unresolved":true,"context_lines":[{"line_number":322,"context_line":"                LOG.warning("},{"line_number":323,"context_line":"                    \"Device spec is not found for device %s in \""},{"line_number":324,"context_line":"                    \"[pci]device_spec. Ignoring device in Placement resource \""},{"line_number":325,"context_line":"                    \"view. This should not happen. Please file a bug.\","},{"line_number":326,"context_line":"                    dev.address"},{"line_number":327,"context_line":"                )"},{"line_number":328,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":15,"id":"bc504629_c271fb40","line":325,"updated":"2022-08-24 04:09:15.000000000","message":"ya im not sure when this would be taken other then when you remove a device from the dev_sepc that currently has a claim against it.\n\nin that case we will have a device in the pci tracker that is not in the dev_spec currently that we should not remove until the vm that is using it is moved/deleted","commit_id":"6d6617e1669e64ac865d566934d0b107a91eab0d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f4e7f9b4d5873a0f5fd9fd061b96027a5fb600bf","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                LOG.warning("},{"line_number":323,"context_line":"                    \"Device spec is not found for device %s in \""},{"line_number":324,"context_line":"                    \"[pci]device_spec. Ignoring device in Placement resource \""},{"line_number":325,"context_line":"                    \"view. This should not happen. Please file a bug.\","},{"line_number":326,"context_line":"                    dev.address"},{"line_number":327,"context_line":"                )"},{"line_number":328,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":15,"id":"9827a563_83b962e8","line":325,"in_reply_to":"bc504629_c271fb40","updated":"2022-08-30 11:20:34.000000000","message":"This is enhanced in the patch where possible allocations come into the picture. Yes the only case where this code sees a device but no the spec when the device was configured previously, got allocated, and then the config changed to remove the spec. The case where allocation exists on the dev will emit a different warning. So this case will be theoretically impossible today. I.e. I think the PCI tracker removes the unconfigured dev if the dev has no allocation.","commit_id":"6d6617e1669e64ac865d566934d0b107a91eab0d"}],"nova/tests/functional/libvirt/base.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7710d4745f7b33cac92965f5a2fea6303c7c7bb","unresolved":true,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        return hostname"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def restart_compute("},{"line_number":170,"context_line":"        self,"},{"line_number":171,"context_line":"        hostname,"},{"line_number":172,"context_line":"        host_info\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"72cd5ba5_021b17c1","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":23},"updated":"2022-07-12 06:56:47.000000000","message":"for what its worth it might be nice to have this in it own patch so it can be back ported in the future if needed.","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b9210475a095a4aeb81f9cb594e4a6864f2243d1","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        return hostname"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def restart_compute("},{"line_number":170,"context_line":"        self,"},{"line_number":171,"context_line":"        hostname,"},{"line_number":172,"context_line":"        host_info\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"b353b81b_988361dc","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":23},"in_reply_to":"72cd5ba5_021b17c1","updated":"2022-07-20 12:00:46.000000000","message":"I moved this to a separate patch and move it to the beginning of the series so we can easily merge it right now.","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"}],"nova/tests/functional/libvirt/test_pci_in_placement.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7710d4745f7b33cac92965f5a2fea6303c7c7bb","unresolved":true,"context_lines":[{"line_number":334,"context_line":""},{"line_number":335,"context_line":"        # now un-configure the device and restart the compute"},{"line_number":336,"context_line":"        self.flags(group\u003d\u0027pci\u0027, device_spec\u003dself._to_device_spec_conf([]))"},{"line_number":337,"context_line":"        self.restart_compute(hostname\u003d\"compute1\")"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        # the RP had no allocation so nova could remove it"},{"line_number":340,"context_line":"        self.assert_placement_pci_view("}],"source_content_type":"text/x-python","patch_set":4,"id":"5a06e776_d907ebb3","line":337,"updated":"2022-07-12 06:56:47.000000000","message":"ah that is why you introduced that ya that is a nice way to do it rather then rerunning the periodic.","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1626329722e9414f8a11081e7079aeb6541900e5","unresolved":false,"context_lines":[{"line_number":334,"context_line":""},{"line_number":335,"context_line":"        # now un-configure the device and restart the compute"},{"line_number":336,"context_line":"        self.flags(group\u003d\u0027pci\u0027, device_spec\u003dself._to_device_spec_conf([]))"},{"line_number":337,"context_line":"        self.restart_compute(hostname\u003d\"compute1\")"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        # the RP had no allocation so nova could remove it"},{"line_number":340,"context_line":"        self.assert_placement_pci_view("}],"source_content_type":"text/x-python","patch_set":4,"id":"b179cfba_b3dd5927","line":337,"in_reply_to":"5a06e776_d907ebb3","updated":"2022-07-19 18:46:50.000000000","message":"Ack","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7710d4745f7b33cac92965f5a2fea6303c7c7bb","unresolved":true,"context_lines":[{"line_number":425,"context_line":"            traits\u003d{},"},{"line_number":426,"context_line":"        )"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    def test_remove_all_vfs_add_pf(self):"},{"line_number":429,"context_line":"        device_spec \u003d self._to_device_spec_conf("},{"line_number":430,"context_line":"            ["},{"line_number":431,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":4,"id":"4c7da708_b571e921","line":428,"updated":"2022-07-12 06:56:47.000000000","message":"one thing that I\u0027m aware of is that while the test are correct you are making one simplifying assumption.\nthat is that the inventories don\u0027t currently have allocations.\n\n\nif you modify the whitelist to remove a device that tis allocated to a vm we do not drop it form the db until the vm is moved or deleted.\n\nso as long as the device is in the pic tracker and has allocations it should remain in placement too until its dropped form the tracker.\n\nI think that will work since you are using the pci tracker as the source or truth but it would be nice to add a test for this when we actually have code to do the allocations for instances later.","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1626329722e9414f8a11081e7079aeb6541900e5","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            traits\u003d{},"},{"line_number":426,"context_line":"        )"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    def test_remove_all_vfs_add_pf(self):"},{"line_number":429,"context_line":"        device_spec \u003d self._to_device_spec_conf("},{"line_number":430,"context_line":"            ["},{"line_number":431,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":4,"id":"652d255a_c6f2ce75","line":428,"in_reply_to":"4c7da708_b571e921","updated":"2022-07-19 18:46:50.000000000","message":"I\u0027m aware of the simplified assumption at the moment. See the note in the commit message: \"reconfiguration while there are allocations against the reconfigured devices is not tested yet.\"\n\nRight now I cannot create a VM that has PCI allocation in placement. \n\nNext I will add support for healing PCI allocations in placement. With that in place I can heal PCI allocations in placement for a VM, then I can PCI trigger reconfiguration and test what happens when an allocated VF is removed from the configuration.\n\nSo stay tuned :)","commit_id":"18560cc0fa2342b490de2dbee3ce5652fb6d55d4"}]}
