Rename to Constants.py
[csit.git] / resources / libraries / python / TrafficScriptExecutor.py
index a362f45..7b5368f 100644 (file)
@@ -1,4 +1,4 @@
-# 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:
@@ -13,9 +13,7 @@
 
 """Traffic script executor library."""
 
-from robot.api import logger
-
-from resources.libraries.python.constants import Constants
+from resources.libraries.python.Constants import Constants
 from resources.libraries.python.ssh import SSH
 
 __all__ = ['TrafficScriptExecutor']
@@ -30,7 +28,7 @@ class TrafficScriptExecutor(object):
 
         :param string: String to escape.
         :type string: str
-        :return: Escaped string.
+        :returns: Escaped string.
         :rtype: str
         """
         return string.replace('"', '\\"').replace("$", "\\$")
@@ -55,21 +53,18 @@ class TrafficScriptExecutor(object):
         :raises RuntimeError: ARP reply timeout.
         :raises RuntimeError: Traffic script execution failed.
         """
-        logger.trace("{}".format(timeout))
         ssh = SSH()
         ssh.connect(node)
-        cmd = ("cd {}; virtualenv --system-site-packages env && " +
+        cmd = ("cd {}; " +
+               "virtualenv --system-site-packages --never-download env && " +
                "export PYTHONPATH=${{PWD}}; " +
                ". ${{PWD}}/env/bin/activate; " +
                "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")
@@ -81,6 +76,8 @@ class TrafficScriptExecutor(object):
                 raise RuntimeError("TCP/UDP Rx timeout")
             elif "Error occurred: ARP reply timeout" in stdout:
                 raise RuntimeError("ARP reply timeout")
+            elif "RuntimeError: ESP packet Rx timeout" in stderr:
+                raise RuntimeError("ESP packet Rx timeout")
             else:
                 raise RuntimeError("Traffic script execution failed")
 
@@ -100,7 +97,7 @@ class TrafficScriptExecutor(object):
         :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'