Setting timeout for calling lshw
In some cases lshw may take too long like when we have lot of partitions > 600. We avoid this problem with setting timeout for lshw. Change-Id: I67748bc18023f3f6edce0cc20d4f0486877723b2 Closes-bug: #1559167
This commit is contained in:
parent
08625168b3
commit
28dc110ea5
20
agent
20
agent
|
@ -902,21 +902,21 @@ class NodeAgent
|
||||||
end
|
end
|
||||||
|
|
||||||
def _get_pci_dev_list
|
def _get_pci_dev_list
|
||||||
lshw_path = `which lshw`.chomp
|
lshw_timeout = @settings['lshw_timeout'] || 60
|
||||||
exitstatus = $?
|
Timeout::timeout(lshw_timeout) do
|
||||||
if exitstatus == 0
|
lshw_path = `which lshw`.chomp
|
||||||
data = `#{lshw_path} -json`
|
if $?.success?
|
||||||
exitstatus = $?
|
data = `#{lshw_path} -json`
|
||||||
if exitstatus == 0
|
return JSON.parse(data) if $?.success?
|
||||||
return JSON.parse(data)
|
@logger.warn("Can't get data from lshw. Reason: lshw exited with status #{$?.exitstatus}")
|
||||||
else
|
else
|
||||||
@logger.warn("Can't get data from lshw. Reason: lshw exited with status #{exitstatus}")
|
@logger.warn("Can't find lshw. Reason: 'which lshw' returned exit status #{$?.exitstatus}")
|
||||||
end
|
end
|
||||||
else
|
|
||||||
@logger.warn("Can't find lshw. Reason: 'which lshw' returned exit status #{exitstatus}")
|
|
||||||
end
|
end
|
||||||
|
{}
|
||||||
rescue => e
|
rescue => e
|
||||||
@logger.warn("Can't get data from lshw. Reason: #{e.message}")
|
@logger.warn("Can't get data from lshw. Reason: #{e.message}")
|
||||||
|
{}
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_numa_topology
|
def get_numa_topology
|
||||||
|
|
Loading…
Reference in New Issue