Removes the usage of the IPy module in favor of the netaddr module.
This commit is contained in:
commit
543a57a3d0
@ -56,11 +56,11 @@
|
|||||||
import gettext
|
import gettext
|
||||||
import glob
|
import glob
|
||||||
import json
|
import json
|
||||||
|
import netaddr
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import IPy
|
|
||||||
|
|
||||||
# If ../nova/__init__.py exists, add ../ to Python search path, so that
|
# If ../nova/__init__.py exists, add ../ to Python search path, so that
|
||||||
# it will override what happens to be installed in /usr/(local/)lib/python...
|
# it will override what happens to be installed in /usr/(local/)lib/python...
|
||||||
@ -518,7 +518,7 @@ class FloatingIpCommands(object):
|
|||||||
def create(self, host, range):
|
def create(self, host, range):
|
||||||
"""Creates floating ips for host by range
|
"""Creates floating ips for host by range
|
||||||
arguments: host ip_range"""
|
arguments: host ip_range"""
|
||||||
for address in IPy.IP(range):
|
for address in netaddr.IPNetwork(range):
|
||||||
db.floating_ip_create(context.get_admin_context(),
|
db.floating_ip_create(context.get_admin_context(),
|
||||||
{'address': str(address),
|
{'address': str(address),
|
||||||
'host': host})
|
'host': host})
|
||||||
@ -526,7 +526,7 @@ class FloatingIpCommands(object):
|
|||||||
def delete(self, ip_range):
|
def delete(self, ip_range):
|
||||||
"""Deletes floating ips by range
|
"""Deletes floating ips by range
|
||||||
arguments: range"""
|
arguments: range"""
|
||||||
for address in IPy.IP(ip_range):
|
for address in netaddr.IPNetwork(ip_range):
|
||||||
db.floating_ip_destroy(context.get_admin_context(),
|
db.floating_ip_destroy(context.get_admin_context(),
|
||||||
str(address))
|
str(address))
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ datastore.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
import IPy
|
import netaddr
|
||||||
import os
|
import os
|
||||||
import urllib
|
import urllib
|
||||||
import tempfile
|
import tempfile
|
||||||
@ -452,7 +452,7 @@ class CloudController(object):
|
|||||||
elif cidr_ip:
|
elif cidr_ip:
|
||||||
# If this fails, it throws an exception. This is what we want.
|
# If this fails, it throws an exception. This is what we want.
|
||||||
cidr_ip = urllib.unquote(cidr_ip).decode()
|
cidr_ip = urllib.unquote(cidr_ip).decode()
|
||||||
IPy.IP(cidr_ip)
|
netaddr.IPNetwork(cidr_ip)
|
||||||
values['cidr'] = cidr_ip
|
values['cidr'] = cidr_ip
|
||||||
else:
|
else:
|
||||||
values['cidr'] = '0.0.0.0/0'
|
values['cidr'] = '0.0.0.0/0'
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
import calendar
|
import calendar
|
||||||
import inspect
|
import inspect
|
||||||
|
import netaddr
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from nova import db
|
from nova import db
|
||||||
@ -27,7 +28,6 @@ from nova import exception
|
|||||||
from nova import flags
|
from nova import flags
|
||||||
from nova import log as logging
|
from nova import log as logging
|
||||||
from nova import utils
|
from nova import utils
|
||||||
from IPy import IP
|
|
||||||
|
|
||||||
|
|
||||||
LOG = logging.getLogger("nova.linux_net")
|
LOG = logging.getLogger("nova.linux_net")
|
||||||
@ -707,7 +707,7 @@ def _dnsmasq_cmd(net):
|
|||||||
'--listen-address=%s' % net['gateway'],
|
'--listen-address=%s' % net['gateway'],
|
||||||
'--except-interface=lo',
|
'--except-interface=lo',
|
||||||
'--dhcp-range=%s,static,120s' % net['dhcp_start'],
|
'--dhcp-range=%s,static,120s' % net['dhcp_start'],
|
||||||
'--dhcp-lease-max=%s' % IP(net['cidr']).len(),
|
'--dhcp-lease-max=%s' % len(netaddr.IPNetwork(net['cidr'])),
|
||||||
'--dhcp-hostsfile=%s' % _dhcp_file(net['bridge'], 'conf'),
|
'--dhcp-hostsfile=%s' % _dhcp_file(net['bridge'], 'conf'),
|
||||||
'--dhcp-script=%s' % FLAGS.dhcpbridge,
|
'--dhcp-script=%s' % FLAGS.dhcpbridge,
|
||||||
'--leasefile-ro']
|
'--leasefile-ro']
|
||||||
|
@ -45,10 +45,9 @@ topologies. All of the network commands are issued to a subclass of
|
|||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import math
|
import math
|
||||||
|
import netaddr
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
import IPy
|
|
||||||
|
|
||||||
from nova import context
|
from nova import context
|
||||||
from nova import db
|
from nova import db
|
||||||
from nova import exception
|
from nova import exception
|
||||||
@ -295,8 +294,8 @@ class NetworkManager(manager.SchedulerDependentManager):
|
|||||||
def create_networks(self, context, cidr, num_networks, network_size,
|
def create_networks(self, context, cidr, num_networks, network_size,
|
||||||
cidr_v6, gateway_v6, label, *args, **kwargs):
|
cidr_v6, gateway_v6, label, *args, **kwargs):
|
||||||
"""Create networks based on parameters."""
|
"""Create networks based on parameters."""
|
||||||
fixed_net = IPy.IP(cidr)
|
fixed_net = netaddr.IPNetwork(cidr)
|
||||||
fixed_net_v6 = IPy.IP(cidr_v6)
|
fixed_net_v6 = netaddr.IPNetwork(cidr_v6)
|
||||||
significant_bits_v6 = 64
|
significant_bits_v6 = 64
|
||||||
network_size_v6 = 1 << 64
|
network_size_v6 = 1 << 64
|
||||||
count = 1
|
count = 1
|
||||||
@ -305,15 +304,15 @@ class NetworkManager(manager.SchedulerDependentManager):
|
|||||||
start_v6 = index * network_size_v6
|
start_v6 = index * network_size_v6
|
||||||
significant_bits = 32 - int(math.log(network_size, 2))
|
significant_bits = 32 - int(math.log(network_size, 2))
|
||||||
cidr = '%s/%s' % (fixed_net[start], significant_bits)
|
cidr = '%s/%s' % (fixed_net[start], significant_bits)
|
||||||
project_net = IPy.IP(cidr)
|
project_net = netaddr.IPNetwork(cidr)
|
||||||
net = {}
|
net = {}
|
||||||
net['bridge'] = FLAGS.flat_network_bridge
|
net['bridge'] = FLAGS.flat_network_bridge
|
||||||
net['dns'] = FLAGS.flat_network_dns
|
net['dns'] = FLAGS.flat_network_dns
|
||||||
net['cidr'] = cidr
|
net['cidr'] = cidr
|
||||||
net['netmask'] = str(project_net.netmask())
|
net['netmask'] = str(project_net.netmask)
|
||||||
net['gateway'] = str(project_net[1])
|
net['gateway'] = str(list(project_net)[1])
|
||||||
net['broadcast'] = str(project_net.broadcast())
|
net['broadcast'] = str(project_net.broadcast)
|
||||||
net['dhcp_start'] = str(project_net[2])
|
net['dhcp_start'] = str(list(project_net)[2])
|
||||||
if num_networks > 1:
|
if num_networks > 1:
|
||||||
net['label'] = '%s_%d' % (label, count)
|
net['label'] = '%s_%d' % (label, count)
|
||||||
else:
|
else:
|
||||||
@ -324,15 +323,16 @@ class NetworkManager(manager.SchedulerDependentManager):
|
|||||||
cidr_v6 = '%s/%s' % (fixed_net_v6[start_v6],
|
cidr_v6 = '%s/%s' % (fixed_net_v6[start_v6],
|
||||||
significant_bits_v6)
|
significant_bits_v6)
|
||||||
net['cidr_v6'] = cidr_v6
|
net['cidr_v6'] = cidr_v6
|
||||||
project_net_v6 = IPy.IP(cidr_v6)
|
|
||||||
|
project_net_v6 = netaddr.IPNetwork(cidr_v6)
|
||||||
|
|
||||||
if gateway_v6:
|
if gateway_v6:
|
||||||
# use a pre-defined gateway if one is provided
|
# use a pre-defined gateway if one is provided
|
||||||
net['gateway_v6'] = str(gateway_v6)
|
net['gateway_v6'] = str(list(gateway_v6)[1])
|
||||||
else:
|
else:
|
||||||
net['gateway_v6'] = str(project_net_v6[1])
|
net['gateway_v6'] = str(list(project_net_v6)[1])
|
||||||
|
|
||||||
net['netmask_v6'] = str(project_net_v6.prefixlen())
|
net['netmask_v6'] = str(project_net_v6._prefixlen)
|
||||||
|
|
||||||
network_ref = self.db.network_create_safe(context, net)
|
network_ref = self.db.network_create_safe(context, net)
|
||||||
|
|
||||||
@ -356,7 +356,7 @@ class NetworkManager(manager.SchedulerDependentManager):
|
|||||||
# to properties of the manager class?
|
# to properties of the manager class?
|
||||||
bottom_reserved = self._bottom_reserved_ips
|
bottom_reserved = self._bottom_reserved_ips
|
||||||
top_reserved = self._top_reserved_ips
|
top_reserved = self._top_reserved_ips
|
||||||
project_net = IPy.IP(network_ref['cidr'])
|
project_net = netaddr.IPNetwork(network_ref['cidr'])
|
||||||
num_ips = len(project_net)
|
num_ips = len(project_net)
|
||||||
for index in range(num_ips):
|
for index in range(num_ips):
|
||||||
address = str(project_net[index])
|
address = str(project_net[index])
|
||||||
@ -546,13 +546,13 @@ class VlanManager(NetworkManager):
|
|||||||
' the vlan start cannot be greater'
|
' the vlan start cannot be greater'
|
||||||
' than 4094'))
|
' than 4094'))
|
||||||
|
|
||||||
fixed_net = IPy.IP(cidr)
|
fixed_net = netaddr.IPNetwork(cidr)
|
||||||
if fixed_net.len() < num_networks * network_size:
|
if len(fixed_net) < num_networks * network_size:
|
||||||
raise ValueError(_('The network range is not big enough to fit '
|
raise ValueError(_('The network range is not big enough to fit '
|
||||||
'%(num_networks)s. Network size is %(network_size)s' %
|
'%(num_networks)s. Network size is %(network_size)s' %
|
||||||
locals()))
|
locals()))
|
||||||
|
|
||||||
fixed_net_v6 = IPy.IP(cidr_v6)
|
fixed_net_v6 = netaddr.IPNetwork(cidr_v6)
|
||||||
network_size_v6 = 1 << 64
|
network_size_v6 = 1 << 64
|
||||||
significant_bits_v6 = 64
|
significant_bits_v6 = 64
|
||||||
for index in range(num_networks):
|
for index in range(num_networks):
|
||||||
@ -561,14 +561,14 @@ class VlanManager(NetworkManager):
|
|||||||
start_v6 = index * network_size_v6
|
start_v6 = index * network_size_v6
|
||||||
significant_bits = 32 - int(math.log(network_size, 2))
|
significant_bits = 32 - int(math.log(network_size, 2))
|
||||||
cidr = "%s/%s" % (fixed_net[start], significant_bits)
|
cidr = "%s/%s" % (fixed_net[start], significant_bits)
|
||||||
project_net = IPy.IP(cidr)
|
project_net = netaddr.IPNetwork(cidr)
|
||||||
net = {}
|
net = {}
|
||||||
net['cidr'] = cidr
|
net['cidr'] = cidr
|
||||||
net['netmask'] = str(project_net.netmask())
|
net['netmask'] = str(project_net.netmask)
|
||||||
net['gateway'] = str(project_net[1])
|
net['gateway'] = str(list(project_net)[1])
|
||||||
net['broadcast'] = str(project_net.broadcast())
|
net['broadcast'] = str(project_net.broadcast)
|
||||||
net['vpn_private_address'] = str(project_net[2])
|
net['vpn_private_address'] = str(list(project_net)[2])
|
||||||
net['dhcp_start'] = str(project_net[3])
|
net['dhcp_start'] = str(list(project_net)[3])
|
||||||
net['vlan'] = vlan
|
net['vlan'] = vlan
|
||||||
net['bridge'] = 'br%s' % vlan
|
net['bridge'] = 'br%s' % vlan
|
||||||
if(FLAGS.use_ipv6):
|
if(FLAGS.use_ipv6):
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
"""
|
"""
|
||||||
Base class of Unit Tests for all network models
|
Base class of Unit Tests for all network models
|
||||||
"""
|
"""
|
||||||
import IPy
|
import netaddr
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from nova import context
|
from nova import context
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
"""
|
"""
|
||||||
Unit Tests for flat network code
|
Unit Tests for flat network code
|
||||||
"""
|
"""
|
||||||
import IPy
|
import netaddr
|
||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
@ -45,8 +45,8 @@ class FlatNetworkTestCase(base.NetworkTestCase):
|
|||||||
|
|
||||||
self.context._project = self.projects[0]
|
self.context._project = self.projects[0]
|
||||||
self.context.project_id = self.projects[0].id
|
self.context.project_id = self.projects[0].id
|
||||||
pubnet = IPy.IP(flags.FLAGS.floating_range)
|
pubnet = netaddr.IPRange(flags.FLAGS.floating_range)
|
||||||
address = str(pubnet[0])
|
address = str(list(pubnet)[0])
|
||||||
try:
|
try:
|
||||||
db.floating_ip_get_by_address(context.get_admin_context(), address)
|
db.floating_ip_get_by_address(context.get_admin_context(), address)
|
||||||
except exception.NotFound:
|
except exception.NotFound:
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
"""
|
"""
|
||||||
Unit Tests for network code
|
Unit Tests for network code
|
||||||
"""
|
"""
|
||||||
import IPy
|
import netaddr
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from nova import test
|
from nova import test
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
"""
|
"""
|
||||||
Unit Tests for vlan network code
|
Unit Tests for vlan network code
|
||||||
"""
|
"""
|
||||||
import IPy
|
import netaddr
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from nova import context
|
from nova import context
|
||||||
@ -44,8 +44,8 @@ class VlanNetworkTestCase(base.NetworkTestCase):
|
|||||||
# TODO(vish): better way of adding floating ips
|
# TODO(vish): better way of adding floating ips
|
||||||
self.context._project = self.projects[0]
|
self.context._project = self.projects[0]
|
||||||
self.context.project_id = self.projects[0].id
|
self.context.project_id = self.projects[0].id
|
||||||
pubnet = IPy.IP(flags.FLAGS.floating_range)
|
pubnet = netaddr.IPNetwork(flags.FLAGS.floating_range)
|
||||||
address = str(pubnet[0])
|
address = str(list(pubnet)[0])
|
||||||
try:
|
try:
|
||||||
db.floating_ip_get_by_address(context.get_admin_context(), address)
|
db.floating_ip_get_by_address(context.get_admin_context(), address)
|
||||||
except exception.NotFound:
|
except exception.NotFound:
|
||||||
|
@ -38,6 +38,7 @@ Supports KVM, LXC, QEMU, UML, and XEN.
|
|||||||
|
|
||||||
import hashlib
|
import hashlib
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
|
import netaddr
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
import re
|
import re
|
||||||
@ -53,8 +54,6 @@ from xml.etree import ElementTree
|
|||||||
from eventlet import greenthread
|
from eventlet import greenthread
|
||||||
from eventlet import tpool
|
from eventlet import tpool
|
||||||
|
|
||||||
import IPy
|
|
||||||
|
|
||||||
from nova import context
|
from nova import context
|
||||||
from nova import db
|
from nova import db
|
||||||
from nova import exception
|
from nova import exception
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
"""Network-releated utilities for supporting libvirt connection code."""
|
"""Network-releated utilities for supporting libvirt connection code."""
|
||||||
|
|
||||||
|
|
||||||
import IPy
|
import netaddr
|
||||||
|
|
||||||
from nova import context
|
from nova import context
|
||||||
from nova import db
|
from nova import db
|
||||||
@ -34,18 +34,18 @@ FLAGS = flags.FLAGS
|
|||||||
|
|
||||||
|
|
||||||
def get_net_and_mask(cidr):
|
def get_net_and_mask(cidr):
|
||||||
net = IPy.IP(cidr)
|
net = netaddr.IPNetwork(cidr)
|
||||||
return str(net.net()), str(net.netmask())
|
return str(net.ip), str(net.netmask)
|
||||||
|
|
||||||
|
|
||||||
def get_net_and_prefixlen(cidr):
|
def get_net_and_prefixlen(cidr):
|
||||||
net = IPy.IP(cidr)
|
net = netaddr.IPNetwork(cidr)
|
||||||
return str(net.net()), str(net.prefixlen())
|
return str(net.ip), str(net._prefixlen)
|
||||||
|
|
||||||
|
|
||||||
def get_ip_version(cidr):
|
def get_ip_version(cidr):
|
||||||
net = IPy.IP(cidr)
|
net = netaddr.IPNetwork(cidr)
|
||||||
return int(net.version())
|
return int(net.version)
|
||||||
|
|
||||||
|
|
||||||
def get_network_info(instance):
|
def get_network_info(instance):
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
SQLAlchemy==0.6.3
|
SQLAlchemy==0.6.3
|
||||||
pep8==0.5.0
|
pep8==0.5.0
|
||||||
pylint==0.19
|
pylint==0.19
|
||||||
IPy==0.70
|
|
||||||
Cheetah==2.4.4
|
Cheetah==2.4.4
|
||||||
M2Crypto==0.20.2
|
M2Crypto==0.20.2
|
||||||
amqplib==0.6.1
|
amqplib==0.6.1
|
||||||
|
Loading…
Reference in New Issue
Block a user