)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e3e59028d4a023580b420cf9adb614d258a22c0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"644e1821_1f9e3b72","updated":"2026-07-02 14:35:45.000000000","message":"this is missing enabling the new test and the reslven depend on \nhttps://review.opendev.org/c/openstack/cyborg-tempest-plugin/+/994580","commit_id":"725dffb18d234fb8f7076e837633386b4bf5cfab"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d76a0c4a7225ba8a402ad102933fb13f60f60036","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5c81a88c_b4f735fc","updated":"2026-08-24 12:35:15.000000000","message":"new version in progress","commit_id":"05df3bea1d04d3cd1ba482602d88f92de6a8a5b8"}],"devstack/lib/cyborg":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"3044419f55b05247ce91dc385346acf14b36e6e0","unresolved":true,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    if [[ \"$ENABLE_PCI_SIM\" \u003d\u003d True \u0026\u0026 \\"},{"line_number":274,"context_line":"          \"$PCI_SIM_CONFIGURE_CYBORG_PCI\" \u003d\u003d True ]]; then"},{"line_number":275,"context_line":"        iniset $TEMPEST_CONFIG cyborg device_profile_name \\"},{"line_number":276,"context_line":"            $PCI_SIM_CYBORG_DEVICE_PROFILE_NAME"},{"line_number":277,"context_line":"        iniset $TEMPEST_CONFIG cyborg pci_vendor_id \\"},{"line_number":278,"context_line":"            ${PCI_SIM_VENDOR_ID#0x}"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"51217a42_1a3f6a7f","line":275,"updated":"2026-07-17 11:42:32.000000000","message":"this will need slight adjustments to use the `cyborg_pci` group we introduced in https://review.opendev.org/c/openstack/cyborg-tempest-plugin/+/994580","commit_id":"3406974299c85ac8e536d52fbdf11805e4b87f0d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc4836f2c999a4312f2eff1444deb681889b10f6","unresolved":true,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    if [[ \"$ENABLE_PCI_SIM\" \u003d\u003d True \u0026\u0026 \\"},{"line_number":274,"context_line":"          \"$PCI_SIM_CONFIGURE_CYBORG_PCI\" \u003d\u003d True ]]; then"},{"line_number":275,"context_line":"        iniset $TEMPEST_CONFIG cyborg device_profile_name \\"},{"line_number":276,"context_line":"            $PCI_SIM_CYBORG_DEVICE_PROFILE_NAME"},{"line_number":277,"context_line":"        iniset $TEMPEST_CONFIG cyborg pci_vendor_id \\"},{"line_number":278,"context_line":"            ${PCI_SIM_VENDOR_ID#0x}"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"c4625497_cf567e3e","line":275,"in_reply_to":"51217a42_1a3f6a7f","updated":"2026-08-10 17:25:37.000000000","message":"yep we will need to adapt this to that ill do that in the next version","commit_id":"3406974299c85ac8e536d52fbdf11805e4b87f0d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d76a0c4a7225ba8a402ad102933fb13f60f60036","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    if [[ \"$ENABLE_PCI_SIM\" \u003d\u003d True \u0026\u0026 \\"},{"line_number":274,"context_line":"          \"$PCI_SIM_CONFIGURE_CYBORG_PCI\" \u003d\u003d True ]]; then"},{"line_number":275,"context_line":"        iniset $TEMPEST_CONFIG cyborg device_profile_name \\"},{"line_number":276,"context_line":"            $PCI_SIM_CYBORG_DEVICE_PROFILE_NAME"},{"line_number":277,"context_line":"        iniset $TEMPEST_CONFIG cyborg pci_vendor_id \\"},{"line_number":278,"context_line":"            ${PCI_SIM_VENDOR_ID#0x}"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"aaf52fc0_250c1f3a","line":275,"in_reply_to":"c4625497_cf567e3e","updated":"2026-08-24 12:35:15.000000000","message":"Acknowledged","commit_id":"3406974299c85ac8e536d52fbdf11805e4b87f0d"}],"devstack/lib/pci_sim":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"ceefce2da0a847cc5a7f2925944ff4cae64187fc","unresolved":false,"context_lines":[{"line_number":319,"context_line":"    for vf in \"$@\"; do"},{"line_number":320,"context_line":"        spec\u003d\"{\\\"address\\\":\\\"$vf\\\",\\\"vendor_id\\\":\\\"$vendor_id\\\"\""},{"line_number":321,"context_line":"        spec+\u003d\",\\\"product_id\\\":\\\"$product_id\\\"\""},{"line_number":322,"context_line":"        spec+\u003d\",\\\"managed\\\":$PCI_SIM_CYBORG_MANAGED}\""},{"line_number":323,"context_line":"        specs+\u003d(\"$spec\")"},{"line_number":324,"context_line":"    done"},{"line_number":325,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":7,"id":"121e1bbd_ba34486f","line":322,"updated":"2026-08-24 17:23:26.000000000","message":"The generated Cyborg passthrough_whitelist entry interpolates $PCI_SIM_CYBORG_MANAGED unquoted into JSON: spec+\u003d\",\\\"managed\\\":$PCI_SIM_CYBORG_MANAGED}\". The default (lowercase \u0027false\u0027) parses as a JSON boolean, but DevStack convention is capitalized True/False and every sibling PCI_SIM_* toggle is compared against literal \u0027True\u0027 via trueorfalse. If an operator writes PCI_SIM_CYBORG_MANAGED\u003dTrue in local.conf, the entry becomes {\"address\":...,\"managed\":True} which jsonutils.loads rejects, and Whitelist._parse_white_list_from_config raises PciConfigInvalidWhitelist inside PCIDriver.__init__ (cyborg/accelerator/drivers/pci/pci/driver.py:39), so cyborg-agent fails to start. The same raw value is also written to the Tempest expected_managed option (devstack/lib/cyborg:288).\n\n**Severity**: WARNING | **Confidence**: 0.85\n\n**Impact**: A conventional PCI_SIM_CYBORG_MANAGED\u003dTrue override produces invalid whitelist JSON and prevents cyborg-agent from starting, taking down the whole devstack deployment configured with the Cyborg pci-sim path instead of enabling managed mode. The Tempest expected_managed option would also receive the unnormalized value.\n\n**Suggestion**:\nWrite the value as a quoted JSON string, e.g. spec+\u003d\",\\\"managed\\\":\\\"$PCI_SIM_CYBORG_MANAGED\\\"}\" — normalize_managed already accepts case-insensitive \u0027true\u0027/\u0027false\u0027 strings — or normalize first with PCI_SIM_CYBORG_MANAGED\u003d$(trueorfalse False PCI_SIM_CYBORG_MANAGED) and lowercase it for the tempest expected_managed iniset as well.","commit_id":"5a4809a1082c458ae18cd2a1c7968fe2d6495afa"}]}
