X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FIPv4NodeAddress.py;h=de96c189e59abf519823e7e06c95f334f3d2e991;hp=25179a31199e7e2109a7dfdcc8e7f292eab8e5a6;hb=12a51f968499f7710a5f54c7cc3bc2afa5c7bc3b;hpb=8c12ff59f1a5e750151f5eb0e806dcc80e91c3c2 diff --git a/resources/libraries/python/IPv4NodeAddress.py b/resources/libraries/python/IPv4NodeAddress.py index 25179a3119..de96c189e5 100644 --- a/resources/libraries/python/IPv4NodeAddress.py +++ b/resources/libraries/python/IPv4NodeAddress.py @@ -1,4 +1,4 @@ -# Copyright (c) 2016 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: @@ -26,26 +26,33 @@ IPV4_NETWORKS = ['192.168.{}.0/24'.format(i) for i in range(1, 100)] class IPv4NetworkGenerator(object): - """IPv4 network generator.""" + """IPv4 network generator. + + TODO: Conform to https://docs.python.org/2/library/stdtypes.html#typeiter + """ + def __init__(self, networks): - """ + """Populate internal list of valid networks. + :param networks: List of strings containing IPv4 subnet - with prefix length. + with prefix length. :type networks: list + :raise RuntimeError: If no IPv4 networks are added. """ - self._networks = list() + self._networks = [] for network in networks: net = IPv4Network(unicode(network)) self._networks.append(net) - if len(self._networks) == 0: - raise Exception('No IPv4 networks') + if not self._networks: + raise RuntimeError("No IPv4 networks") def next_network(self): + """Pop and return network from internal list. + + :returns: Next network in form (IPv4Network, subnet). + :raises StopIteration: If there are no more elements. """ - :return: Next network in form (IPv4Network, subnet). - :raises: StopIteration if there are no more elements. - """ - if len(self._networks): + if self._networks: return self._networks.pop() else: raise StopIteration() @@ -79,7 +86,8 @@ def get_variables(nodes, networks=IPV4_NETWORKS[:]): port_idx = 0 ports = {} for node in nodes.values(): - if_name = topo.get_interface_by_link_name(node, link) + if_key = topo.get_interface_by_link_name(node, link) + if_name = topo.get_interface_name(node, if_key) if if_name is not None: port = {'addr': str(next(net_hosts)), 'node': node['host'],