)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f8ddb008f8161f5020464ad45383c3864187794d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e8d9647c_03a6b07c","updated":"2022-07-12 06:37:44.000000000","message":"this looks good but do we want to have a release note for this.\n\nI was thinking you might want to start the release note in one of the earlier patches and keep updating it as you go through the series.\n\nim also ok to defer the release note to later when we can actually turn on th feature and use it.","commit_id":"10c08407d2a4cc2f73b8b85a7ebfe016c9982e09"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"81b4a8051cef9a4e042576c3288d29acf1a6f2fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5155b53a_b37eaf14","in_reply_to":"e8d9647c_03a6b07c","updated":"2022-07-19 18:46:43.000000000","message":"It depends on how we will merge it. I see the following potential merge points of the spec:\n1) at the point where placement inventory reporting and existing allocation healing works and can be enabled via [pci]report_in_placement config. No scheduling support yet.\n2) at the point where both scheduling support is in place too.\n\nFor me the renos are tight to these merge points.\nBut, and you have a good point here, I should gradually add documentation via these patches to the admin doc. Then, I can just add a summary sentence to the reno with a link to the doc. That would not blow up our release notes with many extra details.","commit_id":"10c08407d2a4cc2f73b8b85a7ebfe016c9982e09"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d4fe613e1d884e0660c8675d4d0205a8241830b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"53c78c63_954cf919","updated":"2022-07-20 08:34:23.000000000","message":"The functional test failure is strange but relevant:\n\n        \nft1.7: nova.tests.functional.libvirt.test_pci_in_placement.PlacementPCIReportingTests.test_devname_based_dev_spec_rejectedtesttools.testresult.real._StringException: pythonlogging:\u0027\u0027: {{{\n2022-07-19 19:06:22,977 WARNING [oslo_policy.policy] JSON formatted policy_file support is deprecated since Victoria release. You need to use YAML format which will be default in future. You can use ``oslopolicy-convert-json-to-yaml`` tool to convert existing JSON-formatted policy file to YAML-formatted in backward compatible way: https://docs.openstack.org/oslo.policy/latest/cli/oslopolicy-convert-json-to-yaml.html.\n2022-07-19 19:06:22,978 WARNING [oslo_policy.policy] JSON formatted policy_file support is deprecated since Victoria release. You need to use YAML format which will be default in future. You can use ``oslopolicy-convert-json-to-yaml`` tool to convert existing JSON-formatted policy file to YAML-formatted in backward compatible way: https://docs.openstack.org/oslo.policy/latest/cli/oslopolicy-convert-json-to-yaml.html.\n2022-07-19 19:06:22,981 WARNING [oslo_policy.policy] Policy Rules [\u0027os_compute_api:extensions\u0027, \u0027os_compute_api:os-floating-ip-pools\u0027, \u0027os_compute_api:os-quota-sets:defaults\u0027, \u0027os_compute_api:os-availability-zone:list\u0027, \u0027os_compute_api:limits\u0027, \u0027project_admin_api\u0027, \u0027project_member_api\u0027, \u0027project_reader_api\u0027, \u0027project_reader_or_admin\u0027, \u0027os_compute_api:limits:other_project\u0027, \u0027os_compute_api:os-lock-server:unlock:unlock_override\u0027, \u0027os_compute_api:servers:create:zero_disk_flavor\u0027, \u0027compute:servers:resize:cross_cell\u0027] specified in policy files are the same as the defaults provided by the service. You can remove these rules from policy files which will make maintenance easier. You can detect these redundant rules by ``oslopolicy-list-redundant`` tool also.\n2022-07-19 19:06:22,988 WARNING [placement.db_api] TransactionFactory already started, not reconfiguring.\n2022-07-19 19:06:24,137 INFO [nova.service] Starting conductor node (version 25.1.0)\n2022-07-19 19:06:24,183 INFO [nova.service] Starting scheduler node (version 25.1.0)\n}}}\n\nTraceback (most recent call last):\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/devspec.py\", line 72, in _set_pci_dev_info\n    v \u003d int(a, 16)\nValueError: invalid literal for int() with base 16: \u0027vif-0\u0027\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/tests/functional/libvirt/test_pci_in_placement.py\", line 297, in test_devname_based_dev_spec_rejected\n    ex \u003d self.assertRaises(\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/testcase.py\", line 467, in assertRaises\n    self.assertThat(our_callable, matcher)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/testcase.py\", line 478, in assertThat\n    mismatch_error \u003d self._matchHelper(matchee, matcher, message, verbose)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/testcase.py\", line 530, in _matchHelper\n    mismatch \u003d matcher.match(matchee)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/matchers/_exception.py\", line 104, in match\n    mismatch \u003d self.exception_matcher.match(exc_info)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/matchers/_higherorder.py\", line 62, in match\n    mismatch \u003d matcher.match(matchee)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/testcase.py\", line 457, in match\n    reraise(*matchee)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/compat.py\", line 27, in reraise\n    raise exc_obj.with_traceback(exc_tb)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/matchers/_exception.py\", line 97, in match\n    result \u003d matchee()\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/testcase.py\", line 1039, in __call__\n    return self._callable_object(*self._args, **self._kwargs)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/tests/functional/libvirt/base.py\", line 160, in start_compute\n    self.computes[hostname] \u003d _start_compute(hostname, host_info)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/tests/functional/libvirt/base.py\", line 147, in _start_compute\n    compute \u003d self.start_service(\u0027compute\u0027, host\u003dhostname)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/test.py\", line 420, in start_service\n    svc \u003d self.useFixture(\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/testcase.py\", line 741, in useFixture\n    reraise(*exc_info)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/compat.py\", line 27, in reraise\n    raise exc_obj.with_traceback(exc_tb)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/testtools/testcase.py\", line 714, in useFixture\n    fixture.setUp()\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/tests/fixtures/nova.py\", line 96, in setUp\n    self.service \u003d service.Service.create(**self.kwargs)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/service.py\", line 252, in create\n    service_obj \u003d cls(host, binary, topic, manager,\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/service.py\", line 116, in __init__\n    self.manager \u003d manager_class(host\u003dself.host, *args, **kwargs)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/compute/manager.py\", line 627, in __init__\n    self.network_api \u003d neutron.API()\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/network/neutron.py\", line 302, in __init__\n    self.pci_whitelist \u003d pci_whitelist.Whitelist(\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/whitelist.py\", line 51, in __init__\n    self.specs \u003d self._parse_white_list_from_config(whitelist_spec)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/whitelist.py\", line 80, in _parse_white_list_from_config\n    spec \u003d devspec.PciDeviceSpec(ds)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/devspec.py\", line 276, in __init__\n    self._init_dev_details()\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/devspec.py\", line 317, in _init_dev_details\n    address_obj \u003d self._address_obj()\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/devspec.py\", line 286, in _address_obj\n    address_obj \u003d WhitelistPciAddress(address_str, pf)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/devspec.py\", line 219, in __init__\n    self._init_address_fields(pci_addr)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/devspec.py\", line 234, in _init_address_fields\n    self.pci_address_spec \u003d PciAddressGlobSpec(pci_addr)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/devspec.py\", line 153, in __init__\n    self._set_pci_dev_info(\u0027slot\u0027, MAX_SLOT, \u0027%02x\u0027)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/pci/devspec.py\", line 74, in _set_pci_dev_info\n    raise exception.PciConfigInvalidSpec(\nnova.exception.PciConfigInvalidSpec: Invalid [pci]device_spec config: property slot (\u0027vif-0\u0027) does not parse as a hex number.","commit_id":"c22cc3b93b365d277d122f4ada2ec2af6a9b26b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"25ae42563a3cd01b462f035dd22a0b51aefbc904","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9d212ccf_bdfcc444","updated":"2022-07-20 09:45:32.000000000","message":"I still need to track down the func test failure","commit_id":"5e156deec95058677726f36d98632566779a9622"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"97b795df1ad157553c47eff1b6c57d5e6e36d833","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6eedbbae_e6dba79f","updated":"2022-07-20 11:57:38.000000000","message":"still need to track down the func test failure","commit_id":"b974a785a733a69dda03c09837fc3d4ad4998861"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"45d3190f1a46282b0daaf7498b3feec37e44f15e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"018a3fbe_b93b4fca","updated":"2022-08-19 12:18:50.000000000","message":"🎉","commit_id":"473ed34c2137422121ce54625d2c4a00f958273b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"61e0c68a14eecf051801b9327f99ac693c31e5ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"0d2ca126_8fc42aa4","updated":"2022-08-25 19:08:50.000000000","message":"recheck parent landed","commit_id":"01d7a39e00e3f64219998234fff8115d09712113"}],"doc/source/admin/pci-passthrough.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"45d3190f1a46282b0daaf7498b3feec37e44f15e","unresolved":true,"context_lines":[{"line_number":385,"context_line":"   this proved to be problematic as the netdev name of a PCI device could"},{"line_number":386,"context_line":"   change for multiple reasons during hypervisor reboot. So since nova 26.0.0"},{"line_number":387,"context_line":"   (Zed) the nova-compute service will refuse to start with such configuration."},{"line_number":388,"context_line":"   It is suggested to use the PCI address of the device instead."},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"For deeper technical details please read the `nova specification. \u003chttps://specs.openstack.org/openstack/nova-specs/specs/zed/approved/pci-device-tracking-in-placement.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7af0495e_f0b06cc2","line":388,"updated":"2022-08-19 12:18:50.000000000","message":"Another \u0027versionchanged\u0027 directive-worthy note here 😊","commit_id":"473ed34c2137422121ce54625d2c4a00f958273b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc7141c1ebb521d07bc538879102bcf66386ccfa","unresolved":true,"context_lines":[{"line_number":385,"context_line":"   this proved to be problematic as the netdev name of a PCI device could"},{"line_number":386,"context_line":"   change for multiple reasons during hypervisor reboot. So since nova 26.0.0"},{"line_number":387,"context_line":"   (Zed) the nova-compute service will refuse to start with such configuration."},{"line_number":388,"context_line":"   It is suggested to use the PCI address of the device instead."},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"For deeper technical details please read the `nova specification. \u003chttps://specs.openstack.org/openstack/nova-specs/specs/zed/approved/pci-device-tracking-in-placement.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":14,"id":"aa0a211f_ae131d85","line":388,"in_reply_to":"7af0495e_f0b06cc2","updated":"2022-08-23 18:02:23.000000000","message":"i would suggest leaving these for a final docs patch at the end\n\ncontinue to call them out but lets adress them together in a follow up patch","commit_id":"473ed34c2137422121ce54625d2c4a00f958273b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"14de4e3e4cccc233b53ae0fc3eaa279f036224fe","unresolved":false,"context_lines":[{"line_number":385,"context_line":"   this proved to be problematic as the netdev name of a PCI device could"},{"line_number":386,"context_line":"   change for multiple reasons during hypervisor reboot. So since nova 26.0.0"},{"line_number":387,"context_line":"   (Zed) the nova-compute service will refuse to start with such configuration."},{"line_number":388,"context_line":"   It is suggested to use the PCI address of the device instead."},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"For deeper technical details please read the `nova specification. \u003chttps://specs.openstack.org/openstack/nova-specs/specs/zed/approved/pci-device-tracking-in-placement.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":14,"id":"2535a00d_da0be926","line":388,"in_reply_to":"aa0a211f_ae131d85","updated":"2022-08-30 11:20:28.000000000","message":"I will do a doc only FUP","commit_id":"473ed34c2137422121ce54625d2c4a00f958273b"}],"nova/pci/devspec.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc7141c1ebb521d07bc538879102bcf66386ccfa","unresolved":true,"context_lines":[{"line_number":271,"context_line":"        # stored for better error reporting"},{"line_number":272,"context_line":"        self.dev_spec_conf \u003d copy.deepcopy(dev_spec)"},{"line_number":273,"context_line":"        # the non tag fields (i.e. address, devname) will be removed by"},{"line_number":274,"context_line":"        # _init_dev_details"},{"line_number":275,"context_line":"        self.tags \u003d dev_spec"},{"line_number":276,"context_line":"        self._init_dev_details()"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"2dad8424_87f3c957","line":274,"updated":"2022-08-23 18:02:23.000000000","message":"ah right thats why we need the deepcopy","commit_id":"0d92a83852920575806ed10ab0139661d4f172ac"}],"nova/tests/functional/libvirt/test_pci_in_placement.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"45b5eecdf57b9194db7dbe53edeb1fd18bdbfa05","unresolved":true,"context_lines":[{"line_number":308,"context_line":"        device_spec \u003d self._to_device_spec_conf("},{"line_number":309,"context_line":"            ["},{"line_number":310,"context_line":"                {"},{"line_number":311,"context_line":"                    \"devname\": \"eth0\","},{"line_number":312,"context_line":"                },"},{"line_number":313,"context_line":"            ]"},{"line_number":314,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":9,"id":"dc909440_49c9a1f4","line":311,"updated":"2022-07-25 11:28:41.000000000","message":"This triggers the instability of the functional test. If the test runs in a VM that has eth0 interface nova will read things out from the sysfs but found strange values. E.g. somehow the slot part of the PCI address of eth0 is \u0027vif-0\u0027 in those VMs. \n\nAnyhow unit and functional test should not depend on sysfs of the host. The generic issue is being fixed in https://review.opendev.org/c/openstack/nova/+/844627 that I will move to the beginning of this series.","commit_id":"5c955a4bd3388dc43aef1174fa6754cf0cb3dcf8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"45d3190f1a46282b0daaf7498b3feec37e44f15e","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        device_spec \u003d self._to_device_spec_conf("},{"line_number":309,"context_line":"            ["},{"line_number":310,"context_line":"                {"},{"line_number":311,"context_line":"                    \"devname\": \"eth0\","},{"line_number":312,"context_line":"                },"},{"line_number":313,"context_line":"            ]"},{"line_number":314,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":9,"id":"653c0e1e_39040724","line":311,"in_reply_to":"dc909440_49c9a1f4","updated":"2022-08-19 12:18:50.000000000","message":"This has happened now so marking this as resolved.","commit_id":"5c955a4bd3388dc43aef1174fa6754cf0cb3dcf8"}]}
