X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FMemif.py;h=76e775fcca7bb619cf08e024b7c6d785e53d82fd;hb=0490e94aefea47f6bac0b00339cf832c196b7f09;hp=b4c184e1bedb457af00bae4229b3d558378e27c5;hpb=73a01b1a7fc836c964627eea2c08106df0da5aee;p=csit.git diff --git a/resources/libraries/python/Memif.py b/resources/libraries/python/Memif.py index b4c184e1be..76e775fcca 100644 --- a/resources/libraries/python/Memif.py +++ b/resources/libraries/python/Memif.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 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: @@ -15,7 +15,7 @@ from resources.libraries.python.ssh import SSH from resources.libraries.python.VatExecutor import VatExecutor, VatTerminal -from resources.libraries.python.topology import Topology +from resources.libraries.python.topology import NodeType, Topology class Memif(object): @@ -98,6 +98,17 @@ class Memif(object): vat = VatExecutor() vat.execute_script("show_memif.vat", node, json_out=False) + @staticmethod + def show_memif_on_all_duts(nodes): + """Show Memif data on all DUTs. + + :param nodes: Topology nodes. + :type nodes: dict + """ + for node in nodes.values(): + if node['type'] == NodeType.DUT: + Memif.show_memif(node) + @staticmethod def clear_memif_socks(node, *socks): """Clear Memif sockets for the given node. @@ -134,7 +145,7 @@ class Memif(object): memif_data = memif_data.replace(garbage, '') for line in memif_data.splitlines(): - if line.startswith('Sending') or len(line) == 0: + if not line or line.startswith('Sending'): continue elif line.startswith('memif'): if memif_name: @@ -166,7 +177,7 @@ class Memif(object): :param sw_if_idx: DUT node. :type node: dict :type sw_if_idx: int - :returns: Memif interface name. + :returns: Memif interface name, or None if not found. :rtype: str """ with VatTerminal(node, json_param=False) as vat: @@ -185,7 +196,7 @@ class Memif(object): :param sw_if_idx: DUT node. :type node: dict :type sw_if_idx: int - :returns: Memif interface MAC address. + :returns: Memif interface MAC address, or None if not found. :rtype: str """ with VatTerminal(node, json_param=False) as vat: @@ -194,6 +205,7 @@ class Memif(object): for item in memif_data: if memif_data[item]['sw_if_index'] == str(sw_if_idx): return memif_data[item].get('mac', None) + return None @staticmethod def vpp_get_memif_interface_socket(node, sw_if_idx): @@ -203,7 +215,7 @@ class Memif(object): :param sw_if_idx: DUT node. :type node: dict :type sw_if_idx: int - :returns: Memif interface socket path. + :returns: Memif interface socket path, or None if not found. :rtype: str """ with VatTerminal(node, json_param=False) as vat: @@ -212,6 +224,7 @@ class Memif(object): for item in memif_data: if memif_data[item]['sw_if_index'] == str(sw_if_idx): return memif_data[item].get('socket', None) + return None @staticmethod def vpp_get_memif_interface_id(node, sw_if_idx): @@ -221,7 +234,7 @@ class Memif(object): :param sw_if_idx: DUT node. :type node: dict :type sw_if_idx: int - :returns: Memif interface ID. + :returns: Memif interface ID, or None if not found. :rtype: int """ with VatTerminal(node, json_param=False) as vat: @@ -230,6 +243,7 @@ class Memif(object): for item in memif_data: if memif_data[item]['sw_if_index'] == str(sw_if_idx): return int(memif_data[item].get('id', None)) + return None @staticmethod def vpp_get_memif_interface_role(node, sw_if_idx): @@ -239,7 +253,7 @@ class Memif(object): :param sw_if_idx: DUT node. :type node: dict :type sw_if_idx: int - :returns: Memif interface role. + :returns: Memif interface role, or None if not found. :rtype: int """ with VatTerminal(node, json_param=False) as vat: @@ -248,3 +262,4 @@ class Memif(object): for item in memif_data: if memif_data[item]['sw_if_index'] == str(sw_if_idx): return memif_data[item].get('role', None) + return None