-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2018 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
"""Traffic script executor library."""
-from robot.api import logger
-
from resources.libraries.python.constants import Constants
from resources.libraries.python.ssh import SSH
:param string: String to escape.
:type string: str
- :return: Escaped string.
+ :returns: Escaped string.
:rtype: str
"""
return string.replace('"', '\\"').replace("$", "\\$")
:raises RuntimeError: ARP reply timeout.
:raises RuntimeError: Traffic script execution failed.
"""
- logger.trace("{}".format(timeout))
ssh = SSH()
ssh.connect(node)
cmd = ("cd {}; " +
"resources/traffic_scripts/{} {}") \
.format(Constants.REMOTE_FW_DIR, script_file_name,
script_args)
- (ret_code, stdout, stderr) = ssh.exec_command_sudo(
- 'sh -c "{}"'.format(TrafficScriptExecutor._escape(cmd)),
+ ret_code, stdout, stderr = ssh.exec_command_sudo(
+ 'sh -c "{cmd}"'.format(cmd=TrafficScriptExecutor._escape(cmd)),
timeout=timeout)
- logger.debug("stdout: {}".format(stdout))
- logger.debug("stderr: {}".format(stderr))
- logger.debug("ret_code: {}".format(ret_code))
if ret_code != 0:
if "RuntimeError: ICMP echo Rx timeout" in stderr:
raise RuntimeError("ICMP echo Rx timeout")
:type dst_mac: str
:type src_ip: str
:type dst_ip: str
- :return: Traffic script arguments string.
+ :returns: Traffic script arguments string.
:rtype: str
"""
args = ('--rx_if {0} --tx_if {1} --src_mac {2} --dst_mac {3} --src_ip'