X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2Ftopology.py;h=82516beb6b1274520a148a51e58c86cc84cf48f8;hp=d60bed1b5ba551a3f25b209664c256d0f5e69c65;hb=b4e5c717f5e2c39ded81f0c6f7b0f9f61945befd;hpb=0ad00a491e7c39f126abcd087bc2743dbdc3a1af diff --git a/resources/libraries/python/topology.py b/resources/libraries/python/topology.py index d60bed1b5b..82516beb6b 100644 --- a/resources/libraries/python/topology.py +++ b/resources/libraries/python/topology.py @@ -394,13 +394,13 @@ class Topology(object): :type node: dict :type iface_key: str/int :returns: Return sw_if_index or None if not found. + :rtype: int or None """ try: if isinstance(iface_key, basestring): return node['interfaces'][iface_key].get('vpp_sw_index') # TODO: use only iface_key, do not use integer - else: - return int(iface_key) + return int(iface_key) except (KeyError, ValueError): return None @@ -416,11 +416,10 @@ class Topology(object): :raises TypeError: If provided interface name is not a string. """ try: - if isinstance(iface_name, basestring): - iface_key = Topology.get_interface_by_name(node, iface_name) - return node['interfaces'][iface_key].get('vpp_sw_index') - else: + if not isinstance(iface_name, basestring): raise TypeError("Interface name must be a string.") + iface_key = Topology.get_interface_by_name(node, iface_name) + return node['interfaces'][iface_key].get('vpp_sw_index') except (KeyError, ValueError): return None @@ -565,6 +564,8 @@ class Topology(object): :param iface_keys: Interface keys for lookup. :type node: dict :type iface_keys: strings + :returns: Numa node of most given interfaces or 0. + :rtype: int """ numa_list = [] for if_key in iface_keys: @@ -575,12 +576,11 @@ class Topology(object): numa_cnt_mc = Counter(numa_list).most_common() - if len(numa_cnt_mc) > 0 and numa_cnt_mc[0][0] != -1: + if numa_cnt_mc and numa_cnt_mc[0][0] != -1: return numa_cnt_mc[0][0] - elif len(numa_cnt_mc) > 1 and numa_cnt_mc[0][0] == -1: + if len(numa_cnt_mc) > 1 and numa_cnt_mc[0][0] == -1: return numa_cnt_mc[1][0] - else: - return 0 + return 0 @staticmethod def get_interface_mac(node, iface_key): @@ -650,6 +650,7 @@ class Topology(object): continue if if_val['link'] == link_name: return node_data, if_key + return None @staticmethod def get_interface_pci_addr(node, iface_key): @@ -716,8 +717,8 @@ class Topology(object): :param filter_list: Link filter criteria. :type node: dict :type filter_list: list of strings - :returns: List of strings representing link names occupied by the node. - :rtype: list + :returns: List of link names occupied by the node. + :rtype: None or list of string """ interfaces = node['interfaces'] link_names = [] @@ -732,7 +733,7 @@ class Topology(object): .format(str(interface))) else: link_names.append(interface['link']) - if len(link_names) == 0: + if not link_names: link_names = None return link_names @@ -782,15 +783,14 @@ class Topology(object): :param node2: Connected node. :type node1: dict :type node2: dict - :returns: Name of link connecting the two nodes together. + :returns: Name of a link connecting the two nodes together. :rtype: str :raises RuntimeError: If no links are found. """ connecting_links = self.get_active_connecting_links(node1, node2) - if len(connecting_links) == 0: + if not connecting_links: raise RuntimeError("No links connecting the nodes were found") - else: - return connecting_links[0] + return connecting_links[0] @keyword('Get egress interfaces name on "${node1}" for link with ' '"${node2}"') @@ -806,7 +806,7 @@ class Topology(object): """ interfaces = [] links = self.get_active_connecting_links(node1, node2) - if len(links) == 0: + if not links: raise RuntimeError('No link between nodes') for interface in node1['interfaces'].values(): link = interface.get('link')