Code Review
/
csit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix: use pci/rescan to avoid occasional bind issue on Centos7
[csit.git]
/
resources
/
libraries
/
python
/
InterfaceUtil.py
diff --git
a/resources/libraries/python/InterfaceUtil.py
b/resources/libraries/python/InterfaceUtil.py
index
793f908
..
e5597b9
100644
(file)
--- a/
resources/libraries/python/InterfaceUtil.py
+++ b/
resources/libraries/python/InterfaceUtil.py
@@
-261,8
+261,14
@@
class InterfaceUtil(object):
:rtype: list
"""
:rtype: list
"""
- sw_if_index = Topology.convert_interface_reference(
- node, interface, "sw_if_index")
+ try:
+ sw_if_index = Topology.convert_interface_reference(
+ node, interface, "sw_if_index")
+ except RuntimeError:
+ if isinstance(interface, basestring):
+ sw_if_index = InterfaceUtil.get_sw_if_index(node, interface)
+ else:
+ raise
with VatTerminal(node) as vat:
response = vat.vat_terminal_exec_cmd_from_template(
with VatTerminal(node) as vat:
response = vat.vat_terminal_exec_cmd_from_template(
@@
-342,8
+348,14
@@
class InterfaceUtil(object):
ssh = SSH()
ssh.connect(node)
ssh = SSH()
ssh.connect(node)
- cmd = 'lspci -vmmks {0}'.format(pci_addr)
+ # First rescan PCI devices in the system
+ cmd = 'sh -c "echo 1 > /sys/bus/pci/rescan"'
+ (ret_code, _, _) = ssh.exec_command_sudo(cmd)
+ if int(ret_code) != 0:
+ raise RuntimeError("'{0}' failed on '{1}'"
+ .format(cmd, node['host']))
+ cmd = 'lspci -vmmks {0}'.format(pci_addr)
(ret_code, stdout, _) = ssh.exec_command(cmd)
if int(ret_code) != 0:
raise RuntimeError("'{0}' failed on '{1}'"
(ret_code, stdout, _) = ssh.exec_command(cmd)
if int(ret_code) != 0:
raise RuntimeError("'{0}' failed on '{1}'"