Read device PCIID instead of subsystem one

For some devices like Virtio network device [1af4:1000], there is
invalid PCIID in /sys/class/net.

Change-Id: I3bc514c2d57e3a7669c418e49830491041cb8f52
Closes-Bug: #1655733
(cherry picked from commit 0a306b1dc7)
This commit is contained in:
Vladimir Eremin 2017-01-11 21:56:06 +03:00
parent c2c4ee452e
commit c14c0b208b
1 changed files with 4 additions and 4 deletions

8
agent
View File

@ -510,9 +510,9 @@ class NodeAgent
DEFAULT_SRIOV
end
def nic_pci_id(int)
vendor = File.read("/sys/class/net/#{int}/device/vendor").chomp.gsub(/^0x/, '')
device = File.read("/sys/class/net/#{int}/device/device").chomp.gsub(/^0x/, '')
def nic_pci_id(bus_info)
vendor = File.read("/sys/bus/pci/devices/#{bus_info}/vendor").chomp.gsub(/^0x/, '')
device = File.read("/sys/bus/pci/devices/#{bus_info}/device").chomp.gsub(/^0x/, '')
"#{vendor}:#{device}"
rescue
""
@ -700,7 +700,7 @@ class NodeAgent
# Getting SR-IOV info
int_meta[:interface_properties][:sriov] = sriov_info(int, int_meta[:bus_info])
# Get PCI-ID
int_meta[:interface_properties][:pci_id] = nic_pci_id(int)
int_meta[:interface_properties][:pci_id] = nic_pci_id(int_meta[:bus_info])
# Get numa node
int_meta[:interface_properties][:numa_node] = nic_numa_node(int_meta[:bus_info])
# Get maximum queues