:type node: dict
:type script_args: str
:type timeout: int
+ :raises RuntimeError: ICMP echo Rx timeout.
+ :raises RuntimeError: DHCP REQUEST Rx timeout.
+ :raises RuntimeError: TCP/UDP Rx timeout.
+ :raises RuntimeError: Traffic script execution failed.
"""
logger.trace("{}".format(timeout))
ssh = SSH()
ssh.connect(node)
- cmd = ("cd {}; virtualenv env && " +
+ cmd = ("cd {}; virtualenv --system-site-packages env && " +
"export PYTHONPATH=${{PWD}}; " +
". ${{PWD}}/env/bin/activate; " +
"resources/traffic_scripts/{} {}") \
logger.debug("stderr: {}".format(stderr))
logger.debug("ret_code: {}".format(ret_code))
if ret_code != 0:
- raise Exception("Traffic script execution failed")
+ if "RuntimeError: ICMP echo Rx timeout" in stderr:
+ raise RuntimeError("ICMP echo Rx timeout")
+ elif "RuntimeError: DHCP REQUEST Rx timeout" in stderr:
+ raise RuntimeError("DHCP REQUEST Rx timeout")
+ elif "RuntimeError: TCP/UDP Rx timeout" in stderr:
+ raise RuntimeError("TCP/UDP Rx timeout")
+ else:
+ raise RuntimeError("Traffic script execution failed")
@staticmethod
def traffic_script_gen_arg(rx_if, tx_if, src_mac, dst_mac, src_ip, dst_ip):