Improve test tag string parsing
[csit.git] / resources / libraries / python / VPPUtil.py
index 8f9b593..72b6142 100644 (file)
@@ -17,7 +17,6 @@ from robot.api import logger
 
 from resources.libraries.python.Constants import Constants
 from resources.libraries.python.DUTSetup import DUTSetup
-from resources.libraries.python.L2Util import L2Util
 from resources.libraries.python.PapiExecutor import PapiSocketExecutor
 from resources.libraries.python.ssh import exec_cmd_no_error
 from resources.libraries.python.topology import NodeType
@@ -113,6 +112,10 @@ class VPPUtil(object):
         :param node: Topology node.
         :type node: dict
         """
+        cmd = 'echo "show pci" | sudo socat - UNIX-CONNECT:/run/vpp/cli.sock'
+        exec_cmd_no_error(
+            node, cmd, sudo=False, message='VPP failed to start!', retries=120)
+
         cmd = ('vppctl show pci 2>&1 | '
                'fgrep -v "Connection refused" | '
                'fgrep -v "No such file or directory"')
@@ -161,8 +164,9 @@ class VPPUtil(object):
         :returns: VPP version.
         :rtype: str
         """
+        cmd = 'show_version'
         with PapiSocketExecutor(node) as papi_exec:
-            reply = papi_exec.add('show_version').get_reply()
+            reply = papi_exec.add(cmd).get_reply()
         return_version = reply['version'].rstrip('\0x00')
         version = 'VPP version:      {ver}\n'.format(ver=return_version)
         if verbose:
@@ -255,10 +259,10 @@ class VPPUtil(object):
                 VPPUtil.vpp_enable_traces_on_dut(node, fail_on_error)
 
     @staticmethod
-    def vpp_enable_elog_traces_on_dut(node):
-        """Enable API/CLI/Barrier traces on the DUT node.
+    def vpp_enable_elog_traces(node):
+        """Enable API/CLI/Barrier traces on the specified topology node.
 
-        :param node: DUT node to set up.
+        :param node: Topology node.
         :type node: dict
         """
         PapiSocketExecutor.run_cli_cmd(node, "elog trace api cli barrier")
@@ -272,13 +276,13 @@ class VPPUtil(object):
         """
         for node in nodes.values():
             if node['type'] == NodeType.DUT:
-                VPPUtil.vpp_enable_elog_traces_on_dut(node)
+                VPPUtil.vpp_enable_elog_traces(node)
 
     @staticmethod
-    def show_event_logger_on_dut(node):
-        """Show event logger on the DUT node.
+    def show_event_logger(node):
+        """Show event logger on the specified topology node.
 
-        :param node: DUT node to show traces on.
+        :param node: Topology node.
         :type node: dict
         """
         PapiSocketExecutor.run_cli_cmd(node, "show event-logger")
@@ -292,18 +296,27 @@ class VPPUtil(object):
         """
         for node in nodes.values():
             if node['type'] == NodeType.DUT:
-                VPPUtil.show_event_logger_on_dut(node)
+                VPPUtil.show_event_logger(node)
 
     @staticmethod
     def show_log(node):
-        """Show log on the specified topology node.
+        """Show logging on the specified topology node.
 
         :param node: Topology node.
         :type node: dict
-        :returns: VPP log data.
-        :rtype: list
         """
-        return PapiSocketExecutor.run_cli_cmd(node, "show log")
+        PapiSocketExecutor.run_cli_cmd(node, "show logging")
+
+    @staticmethod
+    def show_log_on_all_duts(nodes):
+        """Show logging on all DUTs in the given topology.
+
+        :param nodes: Nodes in the topology.
+        :type nodes: dict
+        """
+        for node in nodes.values():
+            if node['type'] == NodeType.DUT:
+                VPPUtil.show_log(node)
 
     @staticmethod
     def vpp_show_threads(node):
@@ -314,8 +327,9 @@ class VPPUtil(object):
         :returns: VPP thread data.
         :rtype: list
         """
+        cmd = 'show_threads'
         with PapiSocketExecutor(node) as papi_exec:
-            reply = papi_exec.add('show_threads').get_reply()
+            reply = papi_exec.add(cmd).get_reply()
 
         threads_data = list()
         for thread in reply["thread_data"]:
@@ -326,6 +340,6 @@ class VPPUtil(object):
                 thread_data.append(item)
             threads_data.append(thread_data)
 
-        logger.info("show threads:\n{threads}".format(threads=threads_data))
+        logger.trace("show threads:\n{threads}".format(threads=threads_data))
 
         return threads_data