)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"184039cae250fa909e06def4aa9654c479ccd9a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"575b74e6_1b05f327","updated":"2026-02-06 09:40:45.000000000","message":"Looks good, just a misleading comment","commit_id":"7cd204de8bc52684bc30359c36be1150bedde162"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"96586b9a0a4a11beca84e9c022e00228029125a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"588d6250_e220bb7d","updated":"2026-02-07 13:08:08.000000000","message":"teim-ci: manual","commit_id":"cbdc38f418998174fe1c273285ad82a3a7829667"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"719eac5278f5400a21d7e1b41ff9ffb5cb3c86f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"dd2295af_ea649ae0","updated":"2026-02-07 13:08:26.000000000","message":"teim-ci: manual","commit_id":"cbdc38f418998174fe1c273285ad82a3a7829667"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e48f359ebae23c5ab529a696151f4708bdfe1c92","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"068c3e56_493117f9","updated":"2026-03-24 18:29:59.000000000","message":"The line wrapping in this file seems to be noticeably less than 79 chars, making it harder to read. It would be nice to have it wrap less narrow.\n\nOther than that the main question I have is with the resource_class name in the device spec and alias doesn\u0027t seem to match anything, so I don\u0027t understand how it links up with the inventory resource class name or the quota class name.","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fe0ee0123d5192de978967ba8890fb4f26f46c20","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0cd9ae73_2f3c3a01","in_reply_to":"068c3e56_493117f9","updated":"2026-03-24 19:45:58.000000000","message":"some of that is jsut a combination fo ai+autopep8 formatting thing less densely then i would do by hand.\n\nin term of the resouce class it because of \n\nhttps://github.com/openstack/nova/blob/master/nova/compute/pci_placement_translator.py#L95-L118\n\nwhich was part of the pci in placement feature.\n\ni guess that is not as widely know as i expected it to be.\n\nwe tought it woudl be too much effort for operator to remember to alwasy make it uppercase adn include the CUSTOM_ prefix so we automated it away.","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"56fa1df3215a1498673a17322936331c2437772c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6bd2c991_3c8ca83a","in_reply_to":"0cd9ae73_2f3c3a01","updated":"2026-03-24 22:09:23.000000000","message":"That\u0027s a shame because your hand coding is a lot easier to read 🙂 \n\nI hope we can get to a place where the AI code is as nice to review as code done by hand.\n\nThanks for explaining about the shorthand feature. It makes sense now and I was thrown off a bit by the docs not using it either (unless I missed it).","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a3ffeab30ff2f065f9c9d906d1503bae9d25c886","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5ab1bedc_4961059f","in_reply_to":"6bd2c991_3c8ca83a","updated":"2026-03-24 23:45:28.000000000","message":"its proablly fairer to say that autopep8 is a very conservitive\nminimal code formater in that it really only fixes actul pep8 issues\nit largely leave the code unchanged otherwise.\n\nif we adtoped ruff like oslo and and some other proejct have doen ruff would be much much more oprinonated and reformat this more.\n\nin my personal strle i tent to try and minimise virtical space and be mouch more compact the ai/autopep8 without addtional edit will do by default.\n\nif we were to use ruff with the config that we use in watcher/cybrog it woudl be a littel more compatct\n\nhttps://termbin.com/bvl7\n\nat leat in the case where it can fit on one line ruff is more assertive at makign it be on one line where as autopep8 will allow you to do that it just wornt change the code if it still passes pep8 checks.\n\nin terms of docs ya we prorbly coud ldo a better job or lettign people know about the short hand. i normlaly avoid useing itn in the test for clarity but i didnt this time.","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c38be5983b17d9cf7eb16e84eb4919bc5725dc4c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"10caf432_17be1eb3","updated":"2026-04-08 20:55:38.000000000","message":"This LGTM now, thanks!","commit_id":"fef230f17241f3381357efc29d3c5347e2bc4d04"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9e04ee630276e689a940c85e830c96939f77b63c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"66da49fb_0efbdae2","updated":"2026-05-21 22:24:09.000000000","message":"This still LGTM","commit_id":"f392bd017cbc140190eea1fb74f64027b4122292"}],"nova/tests/functional/regressions/test_bug_2140631.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"184039cae250fa909e06def4aa9654c479ccd9a6","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    is enabled."},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    # Placeholders - will be set in each test"},{"line_number":39,"context_line":"    PCI_DEVICE_SPEC \u003d []"},{"line_number":40,"context_line":"    PCI_ALIAS \u003d []"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9849c514_52f2403a","line":38,"updated":"2026-02-06 09:40:45.000000000","message":"It feel more like an override for what the base class set for it","commit_id":"7cd204de8bc52684bc30359c36be1150bedde162"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0786dd9fe5f95e481f447ee7f103e641b91bc607","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    is enabled."},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    # Placeholders - will be set in each test"},{"line_number":39,"context_line":"    PCI_DEVICE_SPEC \u003d []"},{"line_number":40,"context_line":"    PCI_ALIAS \u003d []"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fc118789_d961508d","line":38,"in_reply_to":"8b63c4e9_18ff8843","updated":"2026-02-07 12:53:49.000000000","message":"still need to adress","commit_id":"7cd204de8bc52684bc30359c36be1150bedde162"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2f1d95389589bc45ab4fc0c71c3e1aebe64b5946","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    is enabled."},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    # Placeholders - will be set in each test"},{"line_number":39,"context_line":"    PCI_DEVICE_SPEC \u003d []"},{"line_number":40,"context_line":"    PCI_ALIAS \u003d []"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8b63c4e9_18ff8843","line":38,"in_reply_to":"9849c514_52f2403a","updated":"2026-02-06 11:06:45.000000000","message":"ya thats fair.\n\nill adress this when i expand the repoducer for neutron and cyborg","commit_id":"7cd204de8bc52684bc30359c36be1150bedde162"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e48f359ebae23c5ab529a696151f4708bdfe1c92","unresolved":true,"context_lines":[{"line_number":25,"context_line":"from nova.limit import local as local_limit"},{"line_number":26,"context_line":"from nova.tests.fixtures import libvirt as fakelibvirt"},{"line_number":27,"context_line":"from nova.tests.functional.libvirt import test_pci_in_placement"},{"line_number":28,"context_line":"from nova.tests.functional import test_servers  # noqa: H306"},{"line_number":29,"context_line":"from nova.tests.functional import test_servers_resource_request"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"4e095d64_0dee2034","line":28,"range":{"start_line":28,"start_character":48,"end_line":28,"end_character":60},"updated":"2026-03-24 18:29:59.000000000","message":"Why would noqa be needed on this?","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fe0ee0123d5192de978967ba8890fb4f26f46c20","unresolved":true,"context_lines":[{"line_number":25,"context_line":"from nova.limit import local as local_limit"},{"line_number":26,"context_line":"from nova.tests.fixtures import libvirt as fakelibvirt"},{"line_number":27,"context_line":"from nova.tests.functional.libvirt import test_pci_in_placement"},{"line_number":28,"context_line":"from nova.tests.functional import test_servers  # noqa: H306"},{"line_number":29,"context_line":"from nova.tests.functional import test_servers_resource_request"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b0b31e9a_f8823a88","line":28,"range":{"start_line":28,"start_character":48,"end_line":28,"end_character":60},"in_reply_to":"4e095d64_0dee2034","updated":"2026-03-24 19:45:58.000000000","message":"it does not this is a mistake.\nfor what its worth i woudl really like to adopt automatic import order sorting some day.\n\ni think i forget to fix this locally ill do that in the next revsion.","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e48f359ebae23c5ab529a696151f4708bdfe1c92","unresolved":true,"context_lines":[{"line_number":72,"context_line":"            {"},{"line_number":73,"context_line":"                \"vendor_id\": fakelibvirt.PCI_VEND_ID,"},{"line_number":74,"context_line":"                \"product_id\": fakelibvirt.PCI_PROD_ID,"},{"line_number":75,"context_line":"                \"resource_class\": \"gpu\","},{"line_number":76,"context_line":"            },"},{"line_number":77,"context_line":"        ])"},{"line_number":78,"context_line":"        self.flags(group\u003d\u0027pci\u0027, device_spec\u003ddevice_spec)"}],"source_content_type":"text/x-python","patch_set":4,"id":"0b659b29_ebc4e203","line":75,"range":{"start_line":75,"start_character":35,"end_line":75,"end_character":38},"updated":"2026-03-24 18:29:59.000000000","message":"This seems wrong, shouldn\u0027t it be CUSTOM_GPU? How does this end up matching up with CUSTOM_GPU in the resource provider inventory?","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fe0ee0123d5192de978967ba8890fb4f26f46c20","unresolved":true,"context_lines":[{"line_number":72,"context_line":"            {"},{"line_number":73,"context_line":"                \"vendor_id\": fakelibvirt.PCI_VEND_ID,"},{"line_number":74,"context_line":"                \"product_id\": fakelibvirt.PCI_PROD_ID,"},{"line_number":75,"context_line":"                \"resource_class\": \"gpu\","},{"line_number":76,"context_line":"            },"},{"line_number":77,"context_line":"        ])"},{"line_number":78,"context_line":"        self.flags(group\u003d\u0027pci\u0027, device_spec\u003ddevice_spec)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a26f195_beda11b7","line":75,"range":{"start_line":75,"start_character":35,"end_line":75,"end_character":38},"in_reply_to":"0b659b29_ebc4e203","updated":"2026-03-24 19:45:58.000000000","message":"we normalise it by default to CUSTOM_GPU for you\n\nbut i could make it explicit without relying on that.\n\nit will be CUSTOM_GPU after normalising but using it directly\nmight be eaiser for reviews and future contibutor that are not aware of that.","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"56fa1df3215a1498673a17322936331c2437772c","unresolved":true,"context_lines":[{"line_number":72,"context_line":"            {"},{"line_number":73,"context_line":"                \"vendor_id\": fakelibvirt.PCI_VEND_ID,"},{"line_number":74,"context_line":"                \"product_id\": fakelibvirt.PCI_PROD_ID,"},{"line_number":75,"context_line":"                \"resource_class\": \"gpu\","},{"line_number":76,"context_line":"            },"},{"line_number":77,"context_line":"        ])"},{"line_number":78,"context_line":"        self.flags(group\u003d\u0027pci\u0027, device_spec\u003ddevice_spec)"}],"source_content_type":"text/x-python","patch_set":4,"id":"e5ba0ae9_d4281d91","line":75,"range":{"start_line":75,"start_character":35,"end_line":75,"end_character":38},"in_reply_to":"5a26f195_beda11b7","updated":"2026-03-24 22:09:23.000000000","message":"OK, good to know. I did not expect that.\n\nFWIW I looked around for other examples here:\nhttps://docs.openstack.org/nova/2025.1/admin/pci-passthrough.html#support-for-multiple-types-of-vfs\nand all of them use `CUSTOM_` explicitly so I was not getting this shorthand.\n\nSince it is a intended shorthand then there is no need to change it I think.","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e48f359ebae23c5ab529a696151f4708bdfe1c92","unresolved":true,"context_lines":[{"line_number":342,"context_line":"            limit_fixture.LimitFixture(reglimits, {}))"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        # Create flavor with accelerator device profile"},{"line_number":345,"context_line":"        flavor_id \u003d self._create_acc_flavor()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        # First server succeeds"},{"line_number":348,"context_line":"        server1 \u003d self._create_server("}],"source_content_type":"text/x-python","patch_set":4,"id":"d2fb6498_d207bf4b","line":345,"updated":"2026-03-24 18:29:59.000000000","message":"Note to self: this creates a flavor that ultimately has a request for resource class `FPGA` [1].\n\n[1] https://github.com/openstack/nova/blob/3f4b947614fffbdd09c8105eb60f20aebe9e5d50/nova/tests/fixtures/cyborg.py#L28-L40","commit_id":"4af17768f475625658ee41da907c32c5d96c21bd"}]}
