X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FIPUtil.py;h=4b6e2766d892f0c9554da86954ddebad455c7a00;hp=00a7000c654453cb33683a0287727c9be60200ee;hb=481744b2732ab840a00129bacb5994baa19e125c;hpb=c478afc5aec0161cc66e837c1ab919542b68ebbc diff --git a/resources/libraries/python/IPUtil.py b/resources/libraries/python/IPUtil.py index 00a7000c65..4b6e2766d8 100644 --- a/resources/libraries/python/IPUtil.py +++ b/resources/libraries/python/IPUtil.py @@ -43,19 +43,22 @@ class IPUtil(object): dev=interface, ip=addr, h=node['host'])) -def convert_ipv4_netmask_prefix(netmask): +def convert_ipv4_netmask_prefix(network): """Convert network mask to equivalent network prefix length or vice versa. Example: mask 255.255.0.0 -> prefix length 16 - :param netmask: network mask or network prefix length. - :type netmask: str or int - :return: network mask or network prefix length. + :param network: Network mask or network prefix length. + :type network: str or int + :return: Network mask or network prefix length. :rtype: str or int """ temp_address = "0.0.0.0" - net = IPv4Network(u"{0}/{1}".format(temp_address, netmask), False) + net = IPv4Network(u"{0}/{1}".format(temp_address, network), False) - if isinstance(netmask, int): + if isinstance(network, int) and (0 < network < 33): return net.netmask - elif isinstance(netmask, basestring): + elif isinstance(network, basestring): return net.prefixlen + else: + raise Exception("Value {0} is not a valid ipv4 netmask or network" + " prefix length".format(network))