X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FTrace.py;h=10a55ce140c31b6375ddd012f5b3fde0b65cb07c;hp=1a251a61b6cbc0f3cf137f52a778e4bb884bb330;hb=4c6fe5602edcbd9857a846e5b13a21d5c671a2c8;hpb=8c12ff59f1a5e750151f5eb0e806dcc80e91c3c2 diff --git a/resources/libraries/python/Trace.py b/resources/libraries/python/Trace.py index 1a251a61b6..10a55ce140 100644 --- a/resources/libraries/python/Trace.py +++ b/resources/libraries/python/Trace.py @@ -11,15 +11,40 @@ # See the License for the specific language governing permissions and # limitations under the License. -from resources.libraries.python.VatExecutor import VatExecutor +"""Packet trace library.""" + +from resources.libraries.python.VatExecutor import VatExecutor, VatTerminal from resources.libraries.python.topology import NodeType class Trace(object): + """This class provides methods to manipulate the VPP packet trace.""" @staticmethod - def show_packet_trace_on_all_duts(nodes): + def show_packet_trace_on_all_duts(nodes, maximum=None): + """Show VPP packet trace. + + :param nodes: Nodes from which the packet trace will be displayed. + :param maximum: Maximum number of packet traces to be displayed. + :type nodes: list + :type maximum: int + """ + maximum = "max {count}".format(count=maximum) if maximum is not None\ + else "" + for node in nodes.values(): + if node['type'] == NodeType.DUT: + with VatTerminal(node, json_param=False) as vat: + vat.vat_terminal_exec_cmd_from_template( + 'show_trace.vat', maximum=maximum) + + @staticmethod + def clear_packet_trace_on_all_duts(nodes): + """Clear VPP packet trace. + + :param nodes: Nodes where the packet trace will be cleared. + :type nodes: list + """ for node in nodes.values(): if node['type'] == NodeType.DUT: vat = VatExecutor() - vat.execute_script("show_trace.vat", node, json_out=False) + vat.execute_script("clear_trace.vat", node, json_out=False)