CSIT-425: HC Test: NSH-SFC test suite
[csit.git] / resources / libraries / python / TrafficScriptExecutor.py
index e7b851e..58d48d3 100644 (file)
@@ -37,7 +37,7 @@ class TrafficScriptExecutor(object):
 
     @staticmethod
     def run_traffic_script_on_node(script_file_name, node, script_args,
-                                   timeout=10):
+                                   timeout=60):
         """Run traffic script on the TG node.
 
         :param script_file_name: Traffic script name.
@@ -48,11 +48,18 @@ class TrafficScriptExecutor(object):
         :type node: dict
         :type script_args: str
         :type timeout: int
+        :raises RuntimeError: ICMP echo Rx timeout.
+        :raises RuntimeError: DHCP REQUEST Rx timeout.
+        :raises RuntimeError: DHCP DISCOVER Rx timeout.
+        :raises RuntimeError: TCP/UDP Rx timeout.
+        :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/{} {}") \
@@ -66,11 +73,19 @@ class TrafficScriptExecutor(object):
         logger.debug("ret_code: {}".format(ret_code))
         if ret_code != 0:
             if "RuntimeError: ICMP echo Rx timeout" in stderr:
-                raise Exception("ICMP echo Rx timeout")
+                raise RuntimeError("ICMP echo Rx timeout")
             elif "RuntimeError: DHCP REQUEST Rx timeout" in stderr:
                 raise RuntimeError("DHCP REQUEST Rx timeout")
+            elif "RuntimeError: DHCP DISCOVER Rx timeout" in stderr:
+                raise RuntimeError("DHCP DISCOVER Rx timeout")
+            elif "RuntimeError: TCP/UDP Rx timeout" in stderr:
+                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 Exception("Traffic script execution failed")
+                raise RuntimeError("Traffic script execution failed")
 
     @staticmethod
     def traffic_script_gen_arg(rx_if, tx_if, src_mac, dst_mac, src_ip, dst_ip):