diff --git a/agent b/agent index 1ef3b2c..5a48a16 100755 --- a/agent +++ b/agent @@ -274,6 +274,7 @@ class NodeAgent }, :disks => [], :memory => (_dmi_memory or _ohai_memory), + :pci_devices => _get_pci_dev_list, } admin_mac = (_master_ip_and_mac[:mac] or @os[:macaddress]) rescue nil @@ -786,6 +787,24 @@ class NodeAgent res end + def _get_pci_dev_list + lshw_path = `which lshw`.chomp + exitstatus = $? + if exitstatus == 0 + data = `#{lshw_path} -json` + exitstatus = $? + if exitstatus == 0 + return JSON.parse(data) + else + @logger.warn("Can't get data from lshw. Reason: lshw exited with status #{exitstatus}") + end + else + @logger.warn("Can't find lshw. Reason: 'which lshw' returned exit status #{exitstatus}") + end + rescue => e + @logger.warn("Can't get data from lshw. Reason: #{e.message}") + end + def update_state @node_state = nil if File.exist?("/etc/nailgun_systemtype") diff --git a/debian/control b/debian/control index ce93a7d..61ed7c6 100644 --- a/debian/control +++ b/debian/control @@ -11,6 +11,7 @@ Vcs-Browser: https://github.com/stackforge/fuel-nailgun-agent Package: nailgun-agent Architecture: all XB-Ruby-Versions: ${ruby:Versions} +Recommends: lshw Depends: ohai (<< 7), dmidecode, ethtool,