-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 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:
from resources.libraries.python.topology import NodeType
-class Trace(object):
+class Trace:
"""This class provides methods to manipulate the VPP packet trace."""
@staticmethod
:type nodes: dict
:type maximum: int
"""
- maximum = "max {count}".format(count=maximum) if maximum is not None\
- else ""
-
+ max_opt = f"" if maximum is None else f" max {maximum}"
for node in nodes.values():
- if node['type'] == NodeType.DUT:
- PapiSocketExecutor.run_cli_cmd(
- node, cmd="show trace {max}".format(max=maximum))
+ if node[u"type"] == NodeType.DUT:
+ PapiSocketExecutor.run_cli_cmd_on_all_sockets(
+ node, f"show trace{max_opt}")
@staticmethod
def clear_packet_trace_on_all_duts(nodes):
- """Clear VPP packet trace.
+ """Clear VPP packet trace on all duts.
:param nodes: Nodes where the packet trace will be cleared.
:type nodes: dict
"""
for node in nodes.values():
- if node['type'] == NodeType.DUT:
- PapiSocketExecutor.run_cli_cmd(node, cmd="clear trace")
+ if node[u"type"] == NodeType.DUT:
+ Trace.clear_packet_trace_on_dut(node)
+
+ @staticmethod
+ def clear_packet_trace_on_dut(node):
+ """Clear VPP packet trace on dut.
+
+ :param node: Node where the packet trace will be cleared.
+ :type node: dict
+ """
+ PapiSocketExecutor.run_cli_cmd_on_all_sockets(
+ node, u"clear trace")