)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436ea71f0d7c94b1ce2c212d496360a71ea3b2b8","unresolved":true,"context_lines":[{"line_number":10,"context_line":"when a device spec is removed from the configuration while a device"},{"line_number":11,"context_line":"is still being allocated."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"However there are edge cases in PCI in Placement that it not handled"},{"line_number":14,"context_line":"well. Namely that if the VM having this allocation deleted then"},{"line_number":15,"context_line":"depending on the amount of VFs the PF had originally the logic might"},{"line_number":16,"context_line":"tries to delete the RP before the allocation is removed and that is"},{"line_number":17,"context_line":"rejected by Placement. This prevent the deletion of such VM and"},{"line_number":18,"context_line":"therefore prevents one of the ways the original inconsistency can be"},{"line_number":19,"context_line":"fixed."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Note that with this patch we see two additional behaviors worth"},{"line_number":22,"context_line":"mentioning:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"4a8dabee_4b66ba71","line":19,"range":{"start_line":13,"start_character":1,"end_line":19,"end_character":6},"updated":"2025-09-02 11:19:09.000000000","message":"However there are edge cases in PCI in Placement that it not handled\nwell. Namely that if the VM with this allocation is deleted, then\ndepending on the amount of VFs the PF had originally, the logic might\ntry to delete the RP before the allocation is removed. That is\nrejected by Placement. This prevent the deletion of such a VM and\ntherefore prevents one of the ways the original inconsistency can be\nfixed.","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"aebd79ec469b8922074e615b35da50cbec921918","unresolved":false,"context_lines":[{"line_number":10,"context_line":"when a device spec is removed from the configuration while a device"},{"line_number":11,"context_line":"is still being allocated."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"However there are edge cases in PCI in Placement that it not handled"},{"line_number":14,"context_line":"well. Namely that if the VM having this allocation deleted then"},{"line_number":15,"context_line":"depending on the amount of VFs the PF had originally the logic might"},{"line_number":16,"context_line":"tries to delete the RP before the allocation is removed and that is"},{"line_number":17,"context_line":"rejected by Placement. This prevent the deletion of such VM and"},{"line_number":18,"context_line":"therefore prevents one of the ways the original inconsistency can be"},{"line_number":19,"context_line":"fixed."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Note that with this patch we see two additional behaviors worth"},{"line_number":22,"context_line":"mentioning:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9cbff18d_fa7f967b","line":19,"range":{"start_line":13,"start_character":1,"end_line":19,"end_character":6},"in_reply_to":"4a8dabee_4b66ba71","updated":"2025-09-04 08:34:25.000000000","message":"Done","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436ea71f0d7c94b1ce2c212d496360a71ea3b2b8","unresolved":true,"context_lines":[{"line_number":25,"context_line":"  in Placement also keeps the RP. This keeps the non whitelisted device"},{"line_number":26,"context_line":"  available for allocations until the next nova-compute restart."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* The PCI in Placement logic is different between the case where"},{"line_number":29,"context_line":"  one and last device is removed from an RP and the case where there"},{"line_number":30,"context_line":"  are other devices on the RP some that can be removed and some that"},{"line_number":31,"context_line":"  cannot due to allocation."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Related-Bug: #2115905"},{"line_number":34,"context_line":"Change-Id: Ib3febb77299da65ada24ed49849c04cbf3c41af1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"c499f333_b53077fc","line":31,"range":{"start_line":28,"start_character":2,"end_line":31,"end_character":27},"updated":"2025-09-02 11:19:09.000000000","message":"The PCI in Placement logic is different between the case where\nthe last device is removed from an RP and the case where there\nare other devices on the RP, some that can be removed and some that\ncannot due to allocation.","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"aebd79ec469b8922074e615b35da50cbec921918","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  in Placement also keeps the RP. This keeps the non whitelisted device"},{"line_number":26,"context_line":"  available for allocations until the next nova-compute restart."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* The PCI in Placement logic is different between the case where"},{"line_number":29,"context_line":"  one and last device is removed from an RP and the case where there"},{"line_number":30,"context_line":"  are other devices on the RP some that can be removed and some that"},{"line_number":31,"context_line":"  cannot due to allocation."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Related-Bug: #2115905"},{"line_number":34,"context_line":"Change-Id: Ib3febb77299da65ada24ed49849c04cbf3c41af1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5aecc4cf_abfa1a1f","line":31,"range":{"start_line":28,"start_character":2,"end_line":31,"end_character":27},"in_reply_to":"c499f333_b53077fc","updated":"2025-09-04 08:34:25.000000000","message":"Done","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436ea71f0d7c94b1ce2c212d496360a71ea3b2b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"472d094b_4f60cbdf","updated":"2025-09-02 11:19:09.000000000","message":"some minor nits in the commet message and some comment inlien regarding deduping the tests but on there own they probaly dont rise to needing a respin\n\nif you do the commit message fixes woudl be nice to do at least","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1f43aefb49c2f268be9e8ec9f7781673b47364fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f1d0fd78_d18e93ae","updated":"2025-09-05 12:51:31.000000000","message":"thanks for fixing the nits","commit_id":"d86aa2d15a3056d460952a5a51064f012b00bbe6"}],"nova/tests/functional/libvirt/test_pci_in_placement.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9c73b4e6583a7e36a947c9b9b64b590eabc4df3c","unresolved":false,"context_lines":[{"line_number":874,"context_line":"            self._create_one_compute_with_a_pf_consumed_by_an_instance())"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        # remove 0000:81:00.0 PF from the device spec and restart the compute"},{"line_number":877,"context_line":"        device_spec \u003d self._to_list_of_json_str([])"},{"line_number":878,"context_line":"        self.flags(group\u003d\u0027pci\u0027, device_spec\u003ddevice_spec)"},{"line_number":879,"context_line":"        # The PF is used but removed from the config. The PciTracker warns"},{"line_number":880,"context_line":"        # but keeps the device so the placement logic mimic this and only warns"}],"source_content_type":"text/x-python","patch_set":2,"id":"d44e4ff1_f3bef74a","line":877,"updated":"2025-09-02 13:41:48.000000000","message":"hmmmpff okay, I see that on other tests.","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436ea71f0d7c94b1ce2c212d496360a71ea3b2b8","unresolved":false,"context_lines":[{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        # remove 0000:81:00.0 PF from the device spec and restart the compute"},{"line_number":877,"context_line":"        device_spec \u003d self._to_list_of_json_str([])"},{"line_number":878,"context_line":"        self.flags(group\u003d\u0027pci\u0027, device_spec\u003ddevice_spec)"},{"line_number":879,"context_line":"        # The PF is used but removed from the config. The PciTracker warns"},{"line_number":880,"context_line":"        # but keeps the device so the placement logic mimic this and only warns"},{"line_number":881,"context_line":"        # but keeps the RP and the allocation in placement intact."}],"source_content_type":"text/x-python","patch_set":2,"id":"a9c75c89_0defdc70","line":878,"updated":"2025-09-02 11:19:09.000000000","message":"OK so we started with a device spec form _create_one_compute_with_a_pf_consumed_by_an_instance that has the pf listed\n\nand form the name _create_one_compute_with_a_pf_consumed_by_an_instance also cretes the instance that consumes it putting us in our desired start state.\n\nwe remove the device by setting the dev_spec to an empty list.","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436ea71f0d7c94b1ce2c212d496360a71ea3b2b8","unresolved":false,"context_lines":[{"line_number":898,"context_line":"            \"this warning.\""},{"line_number":899,"context_line":"            % server[\u0027id\u0027],"},{"line_number":900,"context_line":"            self.stdlog.logger.output,"},{"line_number":901,"context_line":"        )"},{"line_number":902,"context_line":"        # the warning from the placement PCI tracking logic"},{"line_number":903,"context_line":"        self.assertIn("},{"line_number":904,"context_line":"            \"WARNING [nova.compute.pci_placement_translator] Device spec is \""}],"source_content_type":"text/x-python","patch_set":2,"id":"d5484813_6272179e","line":901,"updated":"2025-09-02 11:19:09.000000000","message":"ack this is perhaps more fragile to chnags in the message then it needs too be but its good that you have ensured the orginal error message is preserved.\n\nwe have not modifed this since we added that log so its probaly fine.\n\nwe assert the full message above anyway.\n\nim tempeted to say since we copy past this exact log multiple times it woudl be nice to factor this out into a class constant either in the test or in the production code so we can reuse it.","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436ea71f0d7c94b1ce2c212d496360a71ea3b2b8","unresolved":false,"context_lines":[{"line_number":910,"context_line":"            % server[\u0027id\u0027],"},{"line_number":911,"context_line":"            self.stdlog.logger.output,"},{"line_number":912,"context_line":"        )"},{"line_number":913,"context_line":""},{"line_number":914,"context_line":"        self.stdlog.delete_stored_logs()"},{"line_number":915,"context_line":"        # Delete the server as the warning suggests"},{"line_number":916,"context_line":"        self._delete_server(server)"}],"source_content_type":"text/x-python","patch_set":2,"id":"8548429d_b236a9fb","line":913,"updated":"2025-09-02 11:19:09.000000000","message":"+1\n\nsame for this it could eb a constate and the same is tur for the pci_placement_translator log below.\n\nits not required but it would reduce some of the copy paste between the tests.","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436ea71f0d7c94b1ce2c212d496360a71ea3b2b8","unresolved":false,"context_lines":[{"line_number":955,"context_line":"        compute1_expected_placement_view[\"traits\"].pop(\"0000:81:00.0\")"},{"line_number":956,"context_line":"        compute1_expected_placement_view[\"usages\"].pop(\"0000:81:00.0\")"},{"line_number":957,"context_line":"        self.assert_placement_pci_view("},{"line_number":958,"context_line":"            \"compute1\", **compute1_expected_placement_view)"},{"line_number":959,"context_line":""},{"line_number":960,"context_line":"    def _create_one_compute_with_vfs_one_consumed_by_an_instance("},{"line_number":961,"context_line":"        self, num_vfs"}],"source_content_type":"text/x-python","patch_set":2,"id":"65b53e87_31e78f71","line":958,"updated":"2025-09-02 11:19:09.000000000","message":"+1\n\nnote: to self i am expecting that later patches in this serise will also this again as the bug related to the defered removal is adressed in the next patch.","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9c73b4e6583a7e36a947c9b9b64b590eabc4df3c","unresolved":false,"context_lines":[{"line_number":956,"context_line":"        compute1_expected_placement_view[\"usages\"].pop(\"0000:81:00.0\")"},{"line_number":957,"context_line":"        self.assert_placement_pci_view("},{"line_number":958,"context_line":"            \"compute1\", **compute1_expected_placement_view)"},{"line_number":959,"context_line":""},{"line_number":960,"context_line":"    def _create_one_compute_with_vfs_one_consumed_by_an_instance("},{"line_number":961,"context_line":"        self, num_vfs"},{"line_number":962,"context_line":"    ):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5e87190b_19787a03","line":959,"updated":"2025-09-02 13:41:48.000000000","message":"okay, I see the problem, thanks for the test.","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436ea71f0d7c94b1ce2c212d496360a71ea3b2b8","unresolved":true,"context_lines":[{"line_number":959,"context_line":""},{"line_number":960,"context_line":"    def _create_one_compute_with_vfs_one_consumed_by_an_instance("},{"line_number":961,"context_line":"        self, num_vfs"},{"line_number":962,"context_line":"    ):"},{"line_number":963,"context_line":"        # The fake libvirt will emulate on the host:"},{"line_number":964,"context_line":"        # * one type-PF in slot 0, with N type-VF(s)"},{"line_number":965,"context_line":"        pci_info \u003d fakelibvirt.HostPCIDevicesInfo("}],"source_content_type":"text/x-python","patch_set":2,"id":"652a251c_981407d3","line":962,"updated":"2025-09-02 11:19:09.000000000","message":"+1 for creatign this helper liek the PF one","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"aebd79ec469b8922074e615b35da50cbec921918","unresolved":false,"context_lines":[{"line_number":959,"context_line":""},{"line_number":960,"context_line":"    def _create_one_compute_with_vfs_one_consumed_by_an_instance("},{"line_number":961,"context_line":"        self, num_vfs"},{"line_number":962,"context_line":"    ):"},{"line_number":963,"context_line":"        # The fake libvirt will emulate on the host:"},{"line_number":964,"context_line":"        # * one type-PF in slot 0, with N type-VF(s)"},{"line_number":965,"context_line":"        pci_info \u003d fakelibvirt.HostPCIDevicesInfo("}],"source_content_type":"text/x-python","patch_set":2,"id":"ec074cfa_44ce01e9","line":962,"in_reply_to":"652a251c_981407d3","updated":"2025-09-04 08:34:25.000000000","message":"Acknowledged","commit_id":"08fe9338682edc3799303777f24c18df1c0a430b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a737bc91dc50435cb2d1a0d3624dfc8e95276cd","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    \"allocated by %s. You should not remove an allocated device from \""},{"line_number":49,"context_line":"    \"the configuration. Please restore the configuration or cold \""},{"line_number":50,"context_line":"    \"migrate the instance to resolve the inconsistency.\""},{"line_number":51,"context_line":")"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class PlacementPCIReportingTests(test_pci_sriov_servers._PCIServersTestBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f3b8309_f115d0aa","line":51,"updated":"2025-09-04 10:00:48.000000000","message":"+1","commit_id":"d86aa2d15a3056d460952a5a51064f012b00bbe6"}]}
