Replace ipaddr to netaddr
Remove ipaddr from fuelweb_test/requirements.txt and use netaddr in test cases instead of ipaddr Change-Id: I80cee069f9f17360cc5fc48e429a8b7f986c6f2c Closes-bug: #1544148
This commit is contained in:
parent
5372f8cd78
commit
588d1687ac
|
@ -36,8 +36,8 @@ from fuelweb_test.settings import OPENSTACK_RELEASE_UBUNTU
|
|||
from fuelweb_test.settings import POOLS
|
||||
from fuelweb_test.settings import PUBLIC_TEST_IP
|
||||
|
||||
from ipaddr import IPAddress
|
||||
from ipaddr import IPNetwork
|
||||
from netaddr import IPAddress
|
||||
from netaddr import IPNetwork
|
||||
from proboscis.asserts import assert_equal
|
||||
from proboscis.asserts import assert_true
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ import os
|
|||
import posixpath
|
||||
import re
|
||||
import signal
|
||||
import ipaddr
|
||||
import netaddr
|
||||
|
||||
from proboscis import asserts
|
||||
|
||||
|
@ -623,8 +623,8 @@ def generate_floating_ranges(start_ip, end_ip, step):
|
|||
:return:
|
||||
"""
|
||||
ranges = []
|
||||
ip_start = ipaddr.IPAddress(start_ip)
|
||||
ip_end = ipaddr.IPAddress(end_ip)
|
||||
ip_start = netaddr.IPAddress(start_ip)
|
||||
ip_end = netaddr.IPAddress(end_ip)
|
||||
while ip_end - step > ip_start:
|
||||
ranges.append([str(ip_start), str(ip_start + step)])
|
||||
ip_start += (step + 1)
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
import re
|
||||
import time
|
||||
import traceback
|
||||
|
||||
import yaml
|
||||
import netaddr
|
||||
|
||||
from urllib2 import HTTPError
|
||||
|
||||
from devops.error import DevopsCalledProcessError
|
||||
|
@ -22,16 +26,13 @@ from devops.error import TimeoutError
|
|||
from devops.helpers.helpers import _wait
|
||||
from devops.helpers.helpers import wait
|
||||
from devops.models.node import Node
|
||||
import ipaddr
|
||||
from ipaddr import IPNetwork
|
||||
from netaddr import EUI
|
||||
|
||||
from proboscis.asserts import assert_equal
|
||||
from proboscis.asserts import assert_false
|
||||
from proboscis.asserts import assert_is_not_none
|
||||
from proboscis.asserts import assert_not_equal
|
||||
from proboscis.asserts import assert_raises
|
||||
from proboscis.asserts import assert_true
|
||||
import yaml
|
||||
|
||||
from fuelweb_test import logger
|
||||
from fuelweb_test import logwrap
|
||||
|
@ -818,10 +819,8 @@ class FuelWebClient(object):
|
|||
cluster_id)['external_net']))
|
||||
ret = []
|
||||
for pool in subnet['allocation_pools']:
|
||||
ip = ipaddr.IPv4Address(pool['start'])
|
||||
while ip <= ipaddr.IPv4Address(pool['end']):
|
||||
ret.append(str(ip))
|
||||
ip += 1
|
||||
ret.extend([str(ip) for ip in
|
||||
netaddr.iter_iprange(pool['start'], pool['end'])])
|
||||
return ret
|
||||
|
||||
@logwrap
|
||||
|
@ -898,7 +897,7 @@ class FuelWebClient(object):
|
|||
Returns dict with nailgun slave node description if node is
|
||||
registered. Otherwise return None.
|
||||
"""
|
||||
d_macs = {EUI(i.mac_address) for i in devops_node.interfaces}
|
||||
d_macs = {netaddr.EUI(i.mac_address) for i in devops_node.interfaces}
|
||||
logger.debug('Verify that nailgun api is running')
|
||||
attempts = ATTEMPTS
|
||||
nodes = []
|
||||
|
@ -916,7 +915,8 @@ class FuelWebClient(object):
|
|||
time.sleep(TIMEOUT)
|
||||
logger.debug('Look for nailgun node by macs %s', d_macs)
|
||||
for nailgun_node in nodes:
|
||||
macs = {EUI(i['mac']) for i in nailgun_node['meta']['interfaces']}
|
||||
macs = {netaddr.EUI(i['mac']) for i in
|
||||
nailgun_node['meta']['interfaces']}
|
||||
logger.debug('Look for macs returned by nailgun {0}'.format(macs))
|
||||
# Because our HAproxy may create some interfaces
|
||||
if d_macs.issubset(macs):
|
||||
|
@ -947,9 +947,11 @@ class FuelWebClient(object):
|
|||
:rtype: Devops Node or None
|
||||
"""
|
||||
nailgun_node = self.get_nailgun_node_by_fqdn(fqdn)
|
||||
macs = {EUI(i['mac']) for i in nailgun_node['meta']['interfaces']}
|
||||
macs = {netaddr.EUI(i['mac']) for i in
|
||||
nailgun_node['meta']['interfaces']}
|
||||
for devops_node in devops_nodes:
|
||||
devops_macs = {EUI(i.mac_address) for i in devops_node.interfaces}
|
||||
devops_macs = {netaddr.EUI(i.mac_address) for i in
|
||||
devops_node.interfaces}
|
||||
if devops_macs == macs:
|
||||
return devops_node
|
||||
|
||||
|
@ -962,7 +964,7 @@ class FuelWebClient(object):
|
|||
"""
|
||||
for node in self.environment.d_env.nodes():
|
||||
for iface in node.interfaces:
|
||||
if EUI(iface.mac_address) == EUI(mac_address):
|
||||
if netaddr.EUI(iface.mac_address) == netaddr.EUI(mac_address):
|
||||
return node
|
||||
|
||||
@logwrap
|
||||
|
@ -1652,7 +1654,7 @@ class FuelWebClient(object):
|
|||
baremetal_net = self.environment.d_env.get_network(
|
||||
name='ironic').ip_network
|
||||
net_config['gateway'] = str(
|
||||
list(IPNetwork(baremetal_net))[-2])
|
||||
list(netaddr.IPNetwork(baremetal_net))[-2])
|
||||
ip_network = baremetal_net
|
||||
else:
|
||||
ip_network = net_name
|
||||
|
@ -1662,7 +1664,7 @@ class FuelWebClient(object):
|
|||
baremetal_net = self.environment.d_env.get_network(
|
||||
name='ironic').ip_network
|
||||
net_config['gateway'] = str(
|
||||
list(IPNetwork(baremetal_net))[-2])
|
||||
list(netaddr.IPNetwork(baremetal_net))[-2])
|
||||
ip_network = baremetal_net
|
||||
else:
|
||||
net_config['gateway'] = self.environment.d_env.router(net_name)
|
||||
|
@ -1679,7 +1681,7 @@ class FuelWebClient(object):
|
|||
net_config['ip_ranges'] = self.get_range(ip_network, -1)
|
||||
|
||||
def get_range(self, ip_network, ip_range=0):
|
||||
net = list(IPNetwork(ip_network))
|
||||
net = list(netaddr.IPNetwork(ip_network))
|
||||
half = len(net) / 2
|
||||
if ip_range == 0:
|
||||
return [[str(net[2]), str(net[-2])]]
|
||||
|
@ -2219,7 +2221,8 @@ class FuelWebClient(object):
|
|||
for subnet in subnets_list:
|
||||
logger.debug("Check that subnet {0} is part of network {1}"
|
||||
.format(subnet, nailgun_cidr))
|
||||
assert_true(IPNetwork(subnet) in IPNetwork(nailgun_cidr),
|
||||
assert_true(netaddr.IPNetwork(subnet) in
|
||||
netaddr.IPNetwork(nailgun_cidr),
|
||||
'Something goes wrong. Seems subnet {0} is out '
|
||||
'of net {1}'.format(subnet, nailgun_cidr))
|
||||
|
||||
|
@ -2231,7 +2234,8 @@ class FuelWebClient(object):
|
|||
for subnet1, subnet2 in subnets_pairs:
|
||||
logger.debug("Check if the subnet {0} is part of the subnet {1}"
|
||||
.format(subnet1, subnet2))
|
||||
assert_true(IPNetwork(subnet1) not in IPNetwork(subnet2),
|
||||
assert_true(netaddr.IPNetwork(subnet1) not in
|
||||
netaddr.IPNetwork(subnet2),
|
||||
"Subnet {0} is part of subnet {1}"
|
||||
.format(subnet1, subnet2))
|
||||
|
||||
|
@ -2558,7 +2562,7 @@ class FuelWebClient(object):
|
|||
for network in networks:
|
||||
if network['name'] != network_name:
|
||||
continue
|
||||
old_cidr = IPNetwork(network['cidr'])
|
||||
old_cidr = netaddr.IPNetwork(network['cidr'])
|
||||
new_cidr = old_cidr.subnet(1)[0]
|
||||
assert_not_equal(old_cidr, new_cidr,
|
||||
'Can\t create a subnet using default cidr {0} '
|
||||
|
|
|
@ -3,9 +3,8 @@ git+git://github.com/openstack/fuel-devops.git@2.9.16
|
|||
anyjson==0.3.1
|
||||
paramiko
|
||||
proboscis==1.2.6.0
|
||||
ipaddr
|
||||
junitxml>=0.7.0
|
||||
netaddr
|
||||
netaddr>=0.7.12,!=0.7.16
|
||||
python-glanceclient==0.17.1
|
||||
python-keystoneclient>=0.3.2
|
||||
python-novaclient>=2.15.0
|
||||
|
|
|
@ -12,8 +12,6 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from ipaddr import IPAddress
|
||||
from ipaddr import summarize_address_range
|
||||
import netaddr
|
||||
import json
|
||||
|
||||
|
@ -67,7 +65,7 @@ class TestMultipleClusterNets(TestBasic):
|
|||
asserts.assert_true(len(default_admin_network) == 1,
|
||||
"Default 'admin/pxe' network not found "
|
||||
"in cluster network configuration!")
|
||||
default_admin_range = [IPAddress(ip) for ip
|
||||
default_admin_range = [netaddr.IPAddress(ip) for ip
|
||||
in default_admin_network[0]["ip_ranges"][0]]
|
||||
new_admin_range = [default_admin_range[0] + number_excluded_ips,
|
||||
default_admin_range[1]]
|
||||
|
@ -77,9 +75,8 @@ class TestMultipleClusterNets(TestBasic):
|
|||
|
||||
@staticmethod
|
||||
def is_ip_in_range(ip_addr, ip_range_start, ip_range_end):
|
||||
ip_addr_ranges = summarize_address_range(IPAddress(ip_range_start),
|
||||
IPAddress(ip_range_end))
|
||||
return any(IPAddress(ip_addr) in iprange for iprange in ip_addr_ranges)
|
||||
return netaddr.IPAddress(ip_addr) in netaddr.iter_iprange(
|
||||
ip_range_start, ip_range_end)
|
||||
|
||||
@staticmethod
|
||||
def is_update_dnsmasq_running(tasks):
|
||||
|
@ -657,8 +654,9 @@ class TestMultipleClusterNets(TestBasic):
|
|||
}
|
||||
|
||||
for k in check:
|
||||
vip = IPAddress(current_settings['vips'][k]['ipaddr'])
|
||||
custom_net = self.env.d_env.get_network(name=check[k]).ip
|
||||
vip = netaddr.IPAddress(current_settings['vips'][k]['ipaddr'])
|
||||
custom_net = netaddr.IPNetwork(
|
||||
self.env.d_env.get_network(name=check[k]).ip)
|
||||
asserts.assert_true(
|
||||
vip in custom_net,
|
||||
'{0} is not from {1} network'.format(k, check[k]))
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from ipaddr import IPAddress
|
||||
from ipaddr import IPNetwork
|
||||
import netaddr
|
||||
|
||||
from proboscis.asserts import assert_equal
|
||||
from proboscis.asserts import assert_true
|
||||
from proboscis.asserts import fail
|
||||
|
@ -55,9 +55,8 @@ class TestNetworkTemplatesBase(TestBasic):
|
|||
'"{0}", which does not exist!'.format(nodegroup))
|
||||
group_id = [n['id'] for n in nodegroups if
|
||||
n['name'] == nodegroup][0]
|
||||
ip_network = IPNetwork(ip_nets[nodegroup])
|
||||
ip_subnets = ip_network.subnet(
|
||||
int(ip_prefixlen) - int(ip_network.prefixlen))
|
||||
ip_network = netaddr.IPNetwork(ip_nets[nodegroup])
|
||||
ip_subnets = ip_network.subnet(int(ip_prefixlen))
|
||||
for network, interface in networks:
|
||||
ip_subnet = ip_subnets.pop()
|
||||
networks_data.append(
|
||||
|
@ -147,13 +146,14 @@ class TestNetworkTemplatesBase(TestBasic):
|
|||
raw_addresses = self.get_interface_ips(remote, iface_name)
|
||||
raw_ips = [raw_addr.split('/')[0] for raw_addr in raw_addresses]
|
||||
try:
|
||||
ips = [IPAddress(raw_ip) for raw_ip in raw_ips]
|
||||
ips = [netaddr.IPAddress(raw_ip) for raw_ip in raw_ips]
|
||||
except ValueError:
|
||||
fail('Device {0} on remote node does not have a valid '
|
||||
'IPv4 address assigned!'.format(iface_name))
|
||||
return
|
||||
actual_networks = [IPNetwork(raw_addr) for raw_addr in raw_addresses]
|
||||
network = IPNetwork(cidr)
|
||||
actual_networks = [netaddr.IPNetwork(raw_addr) for
|
||||
raw_addr in raw_addresses]
|
||||
network = netaddr.IPNetwork(cidr)
|
||||
assert_true(network in actual_networks,
|
||||
'Network(s) on {0} device differs than {1}: {2}'.format(
|
||||
iface_name, cidr, raw_addresses))
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from ipaddr import IPAddress
|
||||
import random
|
||||
import time
|
||||
import netaddr
|
||||
|
||||
from devops.helpers import helpers
|
||||
from proboscis import asserts
|
||||
|
@ -100,7 +100,7 @@ class ServicesReconfiguration(TestBasic):
|
|||
lambda x: ((x['name'] != 'fuelweb_admin')and
|
||||
(x['name'] != 'private')),
|
||||
networks):
|
||||
default_range = [IPAddress(ip) for ip
|
||||
default_range = [netaddr.IPAddress(ip) for ip
|
||||
in default_network["ip_ranges"][0]]
|
||||
if cut_from_start:
|
||||
new_range = [default_range[0],
|
||||
|
|
Loading…
Reference in New Issue