The PCI driver's _discover_pcis() function had several bugs that caused TypeError when discovering PCI devices: 1. get_pci_devices() returns a (stdout, stderr) tuple from processutils.execute(), but the code iterated over the tuple instead of the stdout lines 2. Raw lspci output strings were passed to device_assignable() which expects dictionaries with vendor_id, product_id, etc. 3. The code expected device_assignable() to return a regex match object with groupdict(), but it returns a boolean This fix: - Properly unpacks the (stdout, stderr) tuple - Parses each lspci output line using a regex to extract the PCI address, vendor_id, and product_id - Builds a proper device dictionary for whitelist matching - Adds common vendor IDs to VENDOR_MAPS (intel, inspur, xilinx, huawei) for trait generation Closes-Bug: #2139368 Generated-By: Cursor claude opus 4.5 Change-Id: I6bdaf7eb4b6b0ba4c891b968f847dcd951ff4336 Signed-off-by: Sean Mooney <[email protected]>
Cyborg
OpenStack Acceleration as a Service
Cyborg provides a general management framework for accelerators such as FPGA, GPU, SoCs, NVMe SSDs, CCIX caches, DPDK/SPDK, pmem and so forth.
- Free software: Apache license
- Wiki: https://wiki.openstack.org/wiki/Cyborg
- Source: https://opendev.org/openstack/cyborg
- Blueprints: https://blueprints.launchpad.net/openstack-cyborg
- Bugs: https://bugs.launchpad.net/openstack-cyborg
- Documentation: https://docs.openstack.org/cyborg/latest/
- Release notes: https://docs.openstack.org/releasenotes/cyborg/
- Design specifications: https://specs.openstack.org/openstack/cyborg-specs/
Features
- REST API for basic accelerator life cycle management
- Generic driver for common accelerator support
Description
Languages
Python
98.7%
Shell
1.2%