+
+ @staticmethod
+ def show_log(node):
+ """Show log 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")
+
+ @staticmethod
+ def vpp_show_threads(node):
+ """Show VPP threads on node.
+
+ :param node: Node to run command on.
+ :type node: dict
+ :returns: VPP thread data.
+ :rtype: list
+ """
+ with PapiSocketExecutor(node) as papi_exec:
+ reply = papi_exec.add('show_threads').get_reply()
+
+ threads_data = list()
+ for thread in reply["thread_data"]:
+ thread_data = list()
+ for item in thread:
+ if isinstance(item, unicode):
+ item = item.rstrip('\x00')
+ thread_data.append(item)
+ threads_data.append(thread_data)
+
+ logger.info("show threads:\n{threads}".format(threads=threads_data))
+
+ return threads_data