)]}'
{"id":"openstack%2Fcyborg~998726","triplet_id":"openstack%2Fcyborg~master~I810742dfa79a369f441b6f6cf7234ae88330afe4","project":"openstack/cyborg","branch":"master","topic":"bug/2152545","attention_set":{"39344":{"account":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"last_update":"2026-08-01 07:51:01.000000000","reason":"Someone else replied on the change"},"4690":{"account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"last_update":"2026-08-01 06:29:15.000000000","reason":"\u003cGERRIT_ACCOUNT_39344\u003e replied on the change","reason_account":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"}},"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-08-01 06:29:15.000000000","reason":"\u003cGERRIT_ACCOUNT_39344\u003e replied on the change","reason_account":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"}},"34452":{"account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"last_update":"2026-07-28 14:01:46.000000000","reason":"Vote got outdated and was removed: Code-Review+1"}},"removed_from_attention_set":{"28006":{"account":{"_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"},"last_update":"2026-07-28 14:10:43.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"I810742dfa79a369f441b6f6cf7234ae88330afe4","subject":"Add shared lspci helpers to common utils","status":"NEW","created":"2026-07-26 14:23:15.000000000","updated":"2026-08-01 08:45:27.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":23,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"057a5a7d0a8b00f36c9db2268411b18bba2b1375","_number":998726,"virtual_id_number":998726,"owner":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-08-01 08:45:27.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_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"}],"REVIEWER":[{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-26 14:23:22.000000000","updated_by":{"_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"},"reviewer":{"_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"},"state":"CC"},{"updated":"2026-07-26 15:33:30.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-07-27 16:08:13.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2026-07-27 18:48:56.000000000","updated_by":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"reviewer":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"state":"REVIEWER"},{"updated":"2026-07-28 22:42:11.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"REVIEWER"}],"messages":[{"id":"7b98ca21900d580c7cb978c8d4bbfb39221ddd69","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-26 14:23:15.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"bb107788db876daf20e48f3ceeff4743f0907aa5","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-26 14:23:22.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"c69862c06fe6488e5dec02047197934c227be070","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-26 14:26:07.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"2308aaa89f28956ab49de8d12f70ef95bb39a5ce","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-26 14:26:16.000000000","message":"Patch Set 1:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/7976a2e2d7aa454196c311c4e0c06b34\n\n- teim-code-review https://zuul.teim.app/t/main/build/cf7e22533a9b45a091d3d2f09fccda2f : NODE_FAILURE Node(set) request 300-0000002488 failed in 0s","accounts_in_message":[],"_revision_number":1},{"id":"d4f2b236c81158149e31216b58ab595b9095c7af","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-26 14:26:27.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"4e9b71dd708ae1e9836601c8556ae55ae87166c1","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-26 14:35:43.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/6b657d260c824ad4b15905b9f1b4b9b2\n\n- teim-code-review https://zuul.teim.app/t/main/build/dcf3d3f9b04c4009b4f5988ea4f3bfc0 : SUCCESS in 8m 34s","accounts_in_message":[],"_revision_number":2},{"id":"e83bd90c3660611e20d26004fab73e22e6d7af5c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-26 15:33:30.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4ae73c8a871a4387b746558f962b604d\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/057e6b6e24414ff1b268b144ab878d47 : SUCCESS in 3m 52s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b07bd266c82c465186a6d75bb9f93e03 : SUCCESS in 3m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/35c2acaecfb94bc0bdb170b45e97d83f : SUCCESS in 6m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/10818b65c1f545a1bd2053a08b903637 : SUCCESS in 3m 22s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/9dd29d51e0eb41cdac65d80b5b36ffe7 : SUCCESS in 3m 13s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/65c5c22841584ebb9be9a2e86fd7e48c : SUCCESS in 3m 42s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7c1dca356f5b42ed9af7075330cd2a6f : SUCCESS in 7m 49s (non-voting)\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/4949403074af4cee9ee072f264adc26c : SUCCESS in 2m 28s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/09c3568033964255bb603ab7362af5f9 : SUCCESS in 36m 28s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/ea6236d04e32449cb824532c3d50d3ba : SUCCESS in 45m 30s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/9dfb182c06464305ba2f5a9dea0e6e06 : SUCCESS in 1h 02m 05s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c1e81c03b74d42859215ff7edb70f998 : SUCCESS in 58m 12s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/48bae56896544ec485cba9371f8e8a96 : SUCCESS in 55m 09s","accounts_in_message":[],"_revision_number":2},{"id":"84c3d70e37e88a5846400175adffc431a6274d0b","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-27 16:08:13.000000000","message":"Patch Set 2: Code-Review-1\n\n(4 comments)","accounts_in_message":[],"_revision_number":2},{"id":"61bf3035197b515b5b38dc2f88acfffae31f790d","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-28 12:20:50.000000000","message":"Patch Set 2:\n\n(4 comments)","accounts_in_message":[],"_revision_number":2},{"id":"2ee89daf526e72a4b37519a39716d916495ba25f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-28 12:23:09.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"3d13222de1f5169c5720bb036945a57f64d5404f","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-28 12:23:16.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"abf85baa02316f640180699bad7f410b26977cf8","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-28 12:32:15.000000000","message":"Patch Set 3:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/9353fb2296064be98d0a1dfb20c3d737\n\n- teim-code-review https://zuul.teim.app/t/main/build/2f26bbed32bf4eecb936fb2483237ca0 : SUCCESS in 8m 51s\n\nWarning:\n  The commit message documents the helpers as lspci_privileged(cmd\u003d(\u0027lspci\u0027, \u0027-nnn\u0027, \u0027-D\u0027)) and get_pci_devices(pci_flags, vendor_id\u003dNone, match\u003dany), but the code implements lspci_privileged(cmd\u003d(\u0027lspci\u0027, \u0027-nn\u0027, \u0027-D\u0027)) and get_pci_devices(*predicates). The get_pci_devices signature is a fundamenta... Impact: Reviewers and future migration authors will expect an API matching the commit message (pci_flags, vendor_id, match\u003dany). The actual predicate-based API requires callers to use has_flags() and has_vendor() and to wrap results in list() (the function returns a generator, not a list like the existin... Recommendation: Update the commit message to accurately document the implemented API: lspci_privileged(cmd\u003d(\u0027lspci\u0027, \u0027-nn\u0027, \u0027-D\u0027)), get_pci_devices(*predicates) with helper predicates has_flags(flags, reducer\u003dany) and has_vendor(vendor_id). Alternatively, if the commit message\u0027s described API is the intended design, change the implementation to match. Also confirm whether the default flag should be -nnn (matching 3 of 4 drivers) or -nn (matching ssd only).","accounts_in_message":[],"_revision_number":3},{"id":"121ff942c00f05f28cd1fe861009599ea7b9cd1e","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-28 13:45:40.000000000","message":"Patch Set 3: Code-Review+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"5fe0b2b5ea01a71c7b45da6dd1aa65339edb3b62","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-28 13:46:58.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a04a089ece0e491090dd020714fee251\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/635da2c70b114d168c6cdf4ed6d09c07 : SUCCESS in 4m 44s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9dc84ee191a443159487f862870a37c9 : SUCCESS in 3m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f21b7671ea7749caae3dac2c63bdc7d8 : SUCCESS in 7m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e5b52251e0d6465ab406a4c0fa248158 : SUCCESS in 3m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f88a81184df643acba8394f813b17fd0 : SUCCESS in 3m 33s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/60cf77ee519a4a16b3f8db8965e930dc : SUCCESS in 3m 36s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/18ad756466594f3b86c2dbf6f6a52099 : SUCCESS in 6m 30s (non-voting)\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/81a37b138d6f4e428b21b952ee17f071 : SUCCESS in 3m 48s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/40cbe019cf7240d3bd34b018adc034ca : SUCCESS in 55m 28s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/8dbf92176ddd426b9c957e59461cf2b9 : SUCCESS in 46m 55s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/9fba3ec5562f4e6f88a7d7dad32c3c13 : SUCCESS in 56m 38s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e7eb26b0c77b4a2f8c1d3113ccf50e59 : SUCCESS in 1h 00m 01s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/6fe15344f57a4bc3b1e0de1cf57f3844 : SUCCESS in 53m 12s","accounts_in_message":[],"_revision_number":3},{"id":"aa7b537ec62e11bfcbde12b2b0db78a32b91159e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-28 14:01:46.000000000","message":"Patch Set 4: Commit message was updated.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"1ee2eebfea2c52f5f6c16fa4a5d1ca4bd97a4c60","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-28 14:01:53.000000000","message":"Patch Set 4:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":4},{"id":"6cd74b0921c2e0fa9aa8a8cb60d182e7ed12ccb9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-28 14:10:34.000000000","message":"Uploaded patch set 5: Commit message was updated.","accounts_in_message":[],"_revision_number":5},{"id":"61cc7f86c262115ae6f78b14810e80ee5fb5ddf7","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-28 14:10:36.000000000","message":"Patch Set 4:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/44dbc3bae0fc44b19c694327449066c7\n\n- teim-code-review https://zuul.teim.app/t/main/build/6454f82f363d421b8355fd62bbf78290 : SUCCESS in 8m 34s\n\nWarning:\n  The commit message describes get_pci_devices(pci_flags, vendor_id\u003dNone, match\u003dany), but the actual implementation uses a predicate-based design: get_pci_devices(*predicates) with has_flags(flags, reducer\u003dany) and has_vendor(vendor_id) helpers. The message also references a \u0027match\u0027 parameter that... Impact: Future migration patches (mentioned in the commit body) and reviewers rely on the commit message to understand the intended API. The mismatch between documented and actual API will cause confusion when drivers are migrated to use these helpers. Recommendation: Update the commit message to accurately describe the predicate-based API: get_pci_devices(*predicates), has_flags(flags, reducer\u003dany), and has_vendor(vendor_id). Remove references to pci_flags, vendor_id, and match parameters of get_pci_devices.","accounts_in_message":[],"_revision_number":4},{"id":"63797740ff42d2c396bcf2a492ec2f8f827f554b","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-28 14:10:43.000000000","message":"Patch Set 5:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":5},{"id":"24ac1064f69c44748983c5bcb16877fa40712a4b","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-28 14:11:16.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"b7bbc15686cd2185af2f95faec8604d2ea082b8c","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-28 14:18:55.000000000","message":"Patch Set 5:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/e047ac876635456397477089b0789f18\n\n- teim-code-review https://zuul.teim.app/t/main/build/59f9eecd133d4da08da1f43574a3b845 : SUCCESS in 7m 56s","accounts_in_message":[],"_revision_number":5},{"id":"a1a01e6ff92567bc82e2c622e9e5cdee0efe6332","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-28 15:19:20.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/11d4c4815dbd44f2ae07080ecd764fb2\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d16468ce4cd9491c950dc5ac012bdb03 : SUCCESS in 4m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/add807b14c6443d6bce2af6433d501de : SUCCESS in 2m 59s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5f18fc6537074e7d97fc7db63f949095 : SUCCESS in 7m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/927148279c32436a871f33689f80d0ac : SUCCESS in 5m 03s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1dcb8c8ebd584137a64c56921b298e53 : SUCCESS in 5m 38s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/116e5d020e274a71b8af808812830347 : SUCCESS in 4m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f4b133d4868e47bfbd41d7259553b018 : SUCCESS in 6m 24s (non-voting)\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/402d7d92ecca40c2a6fa7fd844458845 : SUCCESS in 3m 43s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/27906157326e4aaa914145f8422bee1a : SUCCESS in 54m 24s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/f5903be66460475694f778f3edd09277 : SUCCESS in 45m 46s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/f55fc19e48ef40b8b75721f20288b159 : SUCCESS in 57m 36s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e35cb83429a64355a139cd5e01e28962 : SUCCESS in 53m 38s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/2beb14611a5b4f9099d1df3cc09f27d1 : SUCCESS in 59m 41s","accounts_in_message":[],"_revision_number":5},{"id":"7b6885ce597409e041a2071ac2d979442874c8ff","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-28 15:28:15.000000000","message":"Patch Set 5: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"35cd2c447b7edb60ac75bfcdc3f4b7848b4421d3","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-28 16:53:15.000000000","message":"Patch Set 5: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"8905bd712d991e4493d44421676cfd5d155c1283","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-29 14:31:21.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"80b8d73bf4ba65b6dc167a7353bcbbc2df1a6fdf","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-29 14:31:29.000000000","message":"Patch Set 6:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":6},{"id":"61d3bd42bf81a2e03b63a82d81c780a22c1cf5dd","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-07-29 14:40:01.000000000","message":"Patch Set 6:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/38d5e8ddd863436d85d89f511dc9fd7f\n\n- teim-code-review https://zuul.teim.app/t/main/build/1b8578f56653494f9549c6da3ebdca94 : SUCCESS in 8m 22s","accounts_in_message":[],"_revision_number":6},{"id":"364a73e43499a1ad5d3a91f302a6c327dcd31ba1","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-07-29 14:41:19.000000000","message":"Patch Set 6:\n\n(2 comments)","accounts_in_message":[],"_revision_number":6},{"id":"ff4e8bd2073494e72be6e7991cb561c7fc5c3aa9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-29 15:53:16.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/106271e3b7184eff8d33eaa439764aad\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a862a97ccdf44773b82f3dee121961a3 : SUCCESS in 4m 32s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/df0360616d594ee78408274f414c5930 : SUCCESS in 4m 22s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/17c28b1f80e840c79115b6a167531df4 : SUCCESS in 8m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c473b9559a4b4ae4838d1d308caf8ddc : SUCCESS in 3m 29s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e1bc743dbb6e4ac78d5a39dc9827892a : SUCCESS in 4m 22s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5d2eb9323b1d4797828bb3246deade8a : SUCCESS in 4m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/9e07bfb0588843a4b689313e880b409d : SUCCESS in 4m 04s (non-voting)\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/f3d42910b33547c993a02456c1997380 : SUCCESS in 3m 27s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/5cd85b3ccf24422d8927e3e180b24718 : SUCCESS in 57m 11s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/7bc1d2b54865408e85f62992b5a07a71 : SUCCESS in 22m 15s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/22ebfb2bcf0e42d48863b197d354cf43 : SUCCESS in 56m 04s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/fc6a349ec91840b2bbae75c46ed6c056 : SUCCESS in 44m 31s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/44cabe07ffc94e299a6fb9cf47d62d91 : SUCCESS in 45m 26s","accounts_in_message":[],"_revision_number":6},{"id":"11a2dd4675b8490598f69d0846cc1b73116e39f0","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-30 22:50:19.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"f1ddc57c5f6bf01e6aa7bff25fa6441b46e51ae3","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-31 10:14:10.000000000","message":"Patch Set 6: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"8b44dc4bb20eb7ac3f695c1513c9e57173f4a080","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-31 15:29:31.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"a4a607ee76d6b43f162245b7ec34d7fa4cda9d43","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-31 16:44:46.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"4c2284923ee5742583b2abe7ea4dbba0bd93f978","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-31 18:43:43.000000000","message":"Patch Set 6: -Code-Review\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"af50a606a53513e95187a7c043195537bfb164d9","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-08-01 06:29:15.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"d1675b2b065fc893c93420e7edfe79aee1acb385","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-08-01 07:41:32.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"af56fdd54ea5e1bcde380545c9974762b5d4190f","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-08-01 07:41:39.000000000","message":"Patch Set 7:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":7},{"id":"ddf1b68d195e7742418949f1b6da76d45bf77969","author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"date":"2026-08-01 07:48:24.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"54c8b8b430e169738f247dc62eea8271d6b3811f","tag":"autogenerated:zuul:automatic-ci","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"},"date":"2026-08-01 07:51:01.000000000","message":"Patch Set 7:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/547e8b3b87dd4f878496973c22e20a49\n\n- teim-code-review https://zuul.teim.app/t/main/build/8162a26d2f584185ae788048f466f7e8 : SUCCESS in 9m 13s","accounts_in_message":[],"_revision_number":7},{"id":"057a5a7d0a8b00f36c9db2268411b18bba2b1375","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-01 08:45:27.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2f949d03d8944bf5b43243942de04335\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6de47bc2cb64428dad705139948fd81c : SUCCESS in 3m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3598b72ed5ee4ab4922d453a75b67dfc : SUCCESS in 3m 28s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d8e898e29d6b48bc93b2c22b1552d632 : SUCCESS in 8m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5b88e60bb5ae46e3996451ef0489110d : SUCCESS in 3m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2bf748224e2e44d092e0fd5733a9541b : SUCCESS in 2m 59s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4dc01200d12847e8895eb5297d2f914c : SUCCESS in 3m 11s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ef7d1ffc307842aa99836def5b4f6b76 : SUCCESS in 7m 42s (non-voting)\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/af31d5dcbca7454688dff4629a77036a : SUCCESS in 2m 12s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/2cce1fe7400c46fb9314c24719928d8a : SUCCESS in 30m 27s\n- cyborg-tempest-ipv6 https://zuul.opendev.org/t/openstack/build/d0ba249a2693401da725b9881c40629d : SUCCESS in 45m 29s\n- cyborg-grenade https://zuul.opendev.org/t/openstack/build/402ad5b7635943dc9a7d37c6e7d53097 : SUCCESS in 23m 18s\n- cyborg-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/61688ae8bc6b4ec7bdc18c30150fcdf9 : SUCCESS in 55m 09s\n- cyborg-tempest-srbac https://zuul.opendev.org/t/openstack/build/a86f4e1de50a401e9f11efbe63c5e4ff : SUCCESS in 58m 16s","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"1ac482dc87c463752626a18f927b996a2da48acd","revisions":{"089df7a9b11854fb741091b0f62eccd49474ecd3":{"kind":"REWORK","_number":1,"created":"2026-07-26 14:23:15.000000000","uploader":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"ref":"refs/changes/26/998726/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/26/998726/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/26/998726/1"}}},"commit":{"parents":[{"commit":"24e13c6a1807a6d285b3175bb96be6f3d52a690c","subject":"Merge \"Remove no-op deprecated policy bridges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/24e13c6a1807a6d285b3175bb96be6f3d52a690c"}]}],"author":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:22:22.000000000","tz":540},"committer":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:22:22.000000000","tz":540},"subject":"Add shared lspci helpers to accelerator common utils","message":"Add shared lspci helpers to accelerator common utils\n\nSeveral accelerator drivers (gpu, ssd, fpga/xilinx, fpga/inspur and\naichip/huawei) each carry near-identical copies of lspci_privileged()\nand get_pci_devices(). The duplication means any fix has to be applied\nin several places.\n\nIntroduce shared implementations in the accelerator common utils:\n\n* lspci_privileged(cmd\u003d(\u0027lspci\u0027, \u0027-nnn\u0027, \u0027-D\u0027)) wraps the privileged\n  lspci call and takes an optional command, so callers that need a\n  different invocation (e.g. xilinx\u0027s per-device \u0027lspci -k -s\u0027) can\n  reuse it.\n* get_pci_devices(pci_flags, vendor_id\u003dNone, match\u003dany) filters the\n  lspci output. The \u0027match\u0027 parameter preserves the per-driver\n  behaviour: most drivers match any flag, while xilinx requires all\n  flags.\n\nThis patch only adds the shared helpers and their unit tests; migrating\nthe individual drivers to use them will follow in later patches.\n\nPartial-Bug: #2152545\nGenerated-By: Claude Code (claude-opus-4-8)\nChange-Id: I810742dfa79a369f441b6f6cf7234ae88330afe4\nSigned-off-by: gihong Lee \u003cgh9231@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/089df7a9b11854fb741091b0f62eccd49474ecd3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/089df7a9b11854fb741091b0f62eccd49474ecd3"}]},"branch":"refs/heads/master"},"8afcdd8772353241802cdae89bb10eb750a4a5d1":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-07-26 14:26:07.000000000","uploader":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"ref":"refs/changes/26/998726/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/26/998726/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/26/998726/2"}}},"commit":{"parents":[{"commit":"24e13c6a1807a6d285b3175bb96be6f3d52a690c","subject":"Merge \"Remove no-op deprecated policy bridges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/24e13c6a1807a6d285b3175bb96be6f3d52a690c"}]}],"author":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:22:22.000000000","tz":540},"committer":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:25:09.000000000","tz":540},"subject":"Add shared lspci helpers to common utils","message":"Add shared lspci helpers to common utils\n\nSeveral accelerator drivers (gpu, ssd, fpga/xilinx, fpga/inspur and\naichip/huawei) each carry near-identical copies of lspci_privileged()\nand get_pci_devices(). The duplication means any fix has to be applied\nin several places.\n\nIntroduce shared implementations in the accelerator common utils:\n\n* lspci_privileged(cmd\u003d(\u0027lspci\u0027, \u0027-nnn\u0027, \u0027-D\u0027)) wraps the privileged\n  lspci call and takes an optional command, so callers that need a\n  different invocation (e.g. xilinx\u0027s per-device \u0027lspci -k -s\u0027) can\n  reuse it.\n* get_pci_devices(pci_flags, vendor_id\u003dNone, match\u003dany) filters the\n  lspci output. The \u0027match\u0027 parameter preserves the per-driver\n  behaviour: most drivers match any flag, while xilinx requires all\n  flags.\n\nThis patch only adds the shared helpers and their unit tests; migrating\nthe individual drivers to use them will follow in later patches.\n\nPartial-Bug: #2152545\nGenerated-By: Claude Code (claude-opus-4-8)\nChange-Id: I810742dfa79a369f441b6f6cf7234ae88330afe4\nSigned-off-by: gihong Lee \u003cgh9231@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/8afcdd8772353241802cdae89bb10eb750a4a5d1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/8afcdd8772353241802cdae89bb10eb750a4a5d1"}]},"branch":"refs/heads/master"},"901bbfa50717e63ae50c11ff43d7111069c1b5e7":{"kind":"REWORK","_number":3,"created":"2026-07-28 12:23:09.000000000","uploader":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"ref":"refs/changes/26/998726/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/26/998726/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/26/998726/3"}}},"commit":{"parents":[{"commit":"24e13c6a1807a6d285b3175bb96be6f3d52a690c","subject":"Merge \"Remove no-op deprecated policy bridges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/24e13c6a1807a6d285b3175bb96be6f3d52a690c"}]}],"author":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:22:22.000000000","tz":540},"committer":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-28 11:57:15.000000000","tz":540},"subject":"Add shared lspci helpers to common utils","message":"Add shared lspci helpers to common utils\n\nSeveral accelerator drivers (gpu, ssd, fpga/xilinx, fpga/inspur and\naichip/huawei) each carry near-identical copies of lspci_privileged()\nand get_pci_devices(). The duplication means any fix has to be applied\nin several places.\n\nIntroduce shared implementations in the accelerator common utils:\n\n* lspci_privileged(cmd\u003d(\u0027lspci\u0027, \u0027-nnn\u0027, \u0027-D\u0027)) wraps the privileged\n  lspci call and takes an optional command, so callers that need a\n  different invocation (e.g. xilinx\u0027s per-device \u0027lspci -k -s\u0027) can\n  reuse it.\n* get_pci_devices(pci_flags, vendor_id\u003dNone, match\u003dany) filters the\n  lspci output. The \u0027match\u0027 parameter preserves the per-driver\n  behaviour: most drivers match any flag, while xilinx requires all\n  flags.\n\nThis patch only adds the shared helpers and their unit tests; migrating\nthe individual drivers to use them will follow in later patches.\n\nPartial-Bug: #2152545\nGenerated-By: Claude Code (claude-opus-4-8)\nChange-Id: I810742dfa79a369f441b6f6cf7234ae88330afe4\nSigned-off-by: gihong Lee \u003cgh9231@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/901bbfa50717e63ae50c11ff43d7111069c1b5e7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/901bbfa50717e63ae50c11ff43d7111069c1b5e7"}]},"branch":"refs/heads/master"},"9eedad21bec401dc2cf454e9d0138943f262c61c":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2026-07-28 14:01:46.000000000","uploader":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"ref":"refs/changes/26/998726/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/26/998726/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/26/998726/4"}}},"commit":{"parents":[{"commit":"24e13c6a1807a6d285b3175bb96be6f3d52a690c","subject":"Merge \"Remove no-op deprecated policy bridges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/24e13c6a1807a6d285b3175bb96be6f3d52a690c"}]}],"author":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:22:22.000000000","tz":540},"committer":{"name":"Gihong Lee","email":"gh9231@gmail.com","date":"2026-07-28 14:01:46.000000000","tz":0},"subject":"Add shared lspci helpers to common utils","message":"Add shared lspci helpers to common utils\n\nSeveral accelerator drivers (gpu, ssd, fpga/xilinx, fpga/inspur and\naichip/huawei) each carry near-identical copies of lspci_privileged()\nand get_pci_devices(). The duplication means any fix has to be applied\nin several places.\n\nIntroduce shared implementations in the accelerator common utils:\n\n* lspci_privileged(cmd\u003d(\u0027lspci\u0027, \u0027-nn\u0027, \u0027-D\u0027)) wraps the privileged\n  lspci call and takes an optional command, so callers that need a\n  different invocation (e.g. xilinx\u0027s per-device \u0027lspci -k -s\u0027) can\n  reuse it.\n* get_pci_devices(pci_flags, vendor_id\u003dNone, match\u003dany) filters the\n  lspci output. The \u0027match\u0027 parameter preserves the per-driver\n  behaviour: most drivers match any flag, while xilinx requires all\n  flags.\n\nThis patch only adds the shared helpers and their unit tests; migrating\nthe individual drivers to use them will follow in later patches.\n\nPartial-Bug: #2152545\nGenerated-By: Claude Code (claude-opus-4-8)\nChange-Id: I810742dfa79a369f441b6f6cf7234ae88330afe4\nSigned-off-by: gihong Lee \u003cgh9231@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/9eedad21bec401dc2cf454e9d0138943f262c61c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/9eedad21bec401dc2cf454e9d0138943f262c61c"}]},"branch":"refs/heads/master","description":"Edit commit message"},"40fedd89604bc6e31c4d5c615278eea6e2fd2aa0":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2026-07-28 14:10:34.000000000","uploader":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"ref":"refs/changes/26/998726/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/26/998726/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/26/998726/5"}}},"commit":{"parents":[{"commit":"24e13c6a1807a6d285b3175bb96be6f3d52a690c","subject":"Merge \"Remove no-op deprecated policy bridges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/24e13c6a1807a6d285b3175bb96be6f3d52a690c"}]}],"author":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:22:22.000000000","tz":540},"committer":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-28 14:07:41.000000000","tz":540},"subject":"Add shared lspci helpers to common utils","message":"Add shared lspci helpers to common utils\n\nSeveral accelerator drivers (gpu, ssd, fpga/xilinx, fpga/inspur and\naichip/huawei) each carry near-identical copies of lspci_privileged()\nand get_pci_devices(). The duplication means any fix has to be applied\nin several places.\n\nIntroduce shared implementations in the accelerator common utils, built\naround small composable predicates:\n\n* lspci_privileged(cmd\u003d(\u0027lspci\u0027, \u0027-nn\u0027, \u0027-D\u0027)) wraps the privileged\n  lspci call and takes an optional command, so callers needing a\n  different invocation (e.g. xilinx\u0027s per-device \u0027lspci -k -s\u0027) can\n  reuse it. It uses the documented \u0027-nn\u0027 flag.\n* has_flags(flags, reducer\u003dany) and has_vendor(vendor_id) return\n  predicates over a single lspci line.\n* get_pci_devices(*predicates) yields the lspci lines satisfying all\n  given predicates, so each caller composes the behaviour it needs\n  (e.g. any- vs all-flag matching).\n\nThis patch only adds the shared helpers and their unit tests; migrating\nthe individual drivers to use them will follow in later patches.\n\nPartial-Bug: #2152545\nGenerated-By: Claude Code (claude-opus-4-8)\nChange-Id: I810742dfa79a369f441b6f6cf7234ae88330afe4\nSigned-off-by: gihong Lee \u003cgh9231@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/40fedd89604bc6e31c4d5c615278eea6e2fd2aa0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/40fedd89604bc6e31c4d5c615278eea6e2fd2aa0"}]},"branch":"refs/heads/master"},"d9327e31f15f9c3acf1f7b26f78fb06e2f1b38b6":{"kind":"REWORK","_number":6,"created":"2026-07-29 14:31:21.000000000","uploader":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"ref":"refs/changes/26/998726/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/26/998726/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/26/998726/6"}}},"commit":{"parents":[{"commit":"24e13c6a1807a6d285b3175bb96be6f3d52a690c","subject":"Merge \"Remove no-op deprecated policy bridges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/24e13c6a1807a6d285b3175bb96be6f3d52a690c"}]}],"author":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:22:22.000000000","tz":540},"committer":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-29 13:45:49.000000000","tz":540},"subject":"Add shared lspci helpers to common utils","message":"Add shared lspci helpers to common utils\n\nSeveral accelerator drivers (gpu, ssd, fpga/xilinx, fpga/inspur and\naichip/huawei) each carry near-identical copies of lspci_privileged()\nand get_pci_devices(). The duplication means any fix has to be applied\nin several places.\n\nIntroduce shared implementations in the accelerator common utils, built\naround small composable predicates:\n\n* lspci_privileged() runs a fixed \u0027lspci -nn -D\u0027 (a documented flag) and\n  keeps a narrow privsep contract with no arbitrary command passthrough.\n* has_flags(flags, reducer\u003dany) and has_vendor(vendor_id) return\n  predicates over a single lspci line.\n* get_pci_devices(*predicates) yields the lspci lines satisfying all\n  given predicates, so each caller composes the behaviour it needs\n  (e.g. any- vs all-flag matching).\n\nThis patch only adds the shared helpers and their unit tests; migrating\nthe individual drivers to use them will follow in later patches.\n\nPartial-Bug: #2152545\nGenerated-By: Claude Code (claude-opus-4-8)\nChange-Id: I810742dfa79a369f441b6f6cf7234ae88330afe4\nSigned-off-by: gihong Lee \u003cgh9231@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/d9327e31f15f9c3acf1f7b26f78fb06e2f1b38b6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/d9327e31f15f9c3acf1f7b26f78fb06e2f1b38b6"}]},"branch":"refs/heads/master"},"1ac482dc87c463752626a18f927b996a2da48acd":{"kind":"REWORK","_number":7,"created":"2026-08-01 07:41:32.000000000","uploader":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"ref":"refs/changes/26/998726/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/26/998726/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/26/998726/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/26/998726/7"}}},"commit":{"parents":[{"commit":"24e13c6a1807a6d285b3175bb96be6f3d52a690c","subject":"Merge \"Remove no-op deprecated policy bridges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/24e13c6a1807a6d285b3175bb96be6f3d52a690c"}]}],"author":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-07-26 14:22:22.000000000","tz":540},"committer":{"name":"gihong Lee","email":"gh9231@gmail.com","date":"2026-08-01 07:00:46.000000000","tz":540},"subject":"Add shared lspci helpers to common utils","message":"Add shared lspci helpers to common utils\n\nSeveral accelerator drivers (gpu, ssd, fpga/xilinx, fpga/inspur and\naichip/huawei) each carry near-identical copies of lspci_privileged(),\nget_pci_devices() and a per-driver regex that parses the same\n\u0027lspci -nn -D\u0027 output. The duplication means any fix has to be applied\nin several places, and the divergent regexes are the main source of\nmaintenance cost.\n\nIntroduce shared implementations in the accelerator common utils:\n\n* lspci_privileged() runs a fixed \u0027lspci -nn -D\u0027 (a documented flag) and\n  keeps a narrow privsep contract with no arbitrary command passthrough.\n* parse_lspci_line() parses an lspci line into a normalized dict (hex ids\n  lowercased), giving a single place that replaces the per-driver regexes.\n* get_pci_devices() yields those parsed dicts, so callers filter on the\n  fields they need instead of re-parsing raw strings.\n\nThis patch only adds the shared helpers and their unit tests; migrating\nthe individual drivers to use them will follow in later patches.\n\nPartial-Bug: #2152545\nGenerated-By: Claude Code (claude-opus-4-8)\nChange-Id: I810742dfa79a369f441b6f6cf7234ae88330afe4\nSigned-off-by: gihong Lee \u003cgh9231@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/1ac482dc87c463752626a18f927b996a2da48acd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/1ac482dc87c463752626a18f927b996a2da48acd"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
