Merge "Remove method get_ipv6_addr_by_EUI64"

This commit is contained in:
Zuul 2017-10-25 05:35:52 +00:00 committed by Gerrit Code Review
commit 1d8dfec13d
3 changed files with 5 additions and 72 deletions

View File

@ -0,0 +1,5 @@
---
upgrade:
- |
Remove deprecated get_ipv6_addr_by_EUI64 method from data_utils.
Use the same method from oslo_utils.netutils.

View File

@ -18,9 +18,6 @@ import random
import string
import uuid
from debtcollector import removals
import netaddr
from oslo_utils import netutils
from oslo_utils import uuidutils
import six.moves
@ -177,36 +174,6 @@ def random_bytes(size=1024):
for i in range(size)])
@removals.remove(
message="use get_ipv6_addr_by_EUI64 from oslo_utils.netutils",
version="Newton",
removal_version="Ocata")
def get_ipv6_addr_by_EUI64(cidr, mac):
"""Generate a IPv6 addr by EUI-64 with CIDR and MAC
:param str cidr: a IPv6 CIDR
:param str mac: a MAC address
:return: an IPv6 Address
:rtype: netaddr.IPAddress
"""
# Check if the prefix is IPv4 address
is_ipv4 = netutils.is_valid_ipv4(cidr)
if is_ipv4:
msg = "Unable to generate IP address by EUI64 for IPv4 prefix"
raise TypeError(msg)
try:
eui64 = int(netaddr.EUI(mac).eui64())
prefix = netaddr.IPNetwork(cidr)
return netaddr.IPAddress(prefix.first + eui64 ^ (1 << 57))
except (ValueError, netaddr.AddrFormatError):
raise TypeError('Bad prefix or mac format for generating IPv6 '
'address by EUI-64: %(prefix)s, %(mac)s:'
% {'prefix': cidr, 'mac': mac})
except TypeError:
raise TypeError('Bad prefix type for generate IPv6 address by '
'EUI-64: %s' % cidr)
# Courtesy of http://stackoverflow.com/a/312464
def chunkify(sequence, chunksize):
"""Yield successive chunks from `sequence`."""

View File

@ -13,8 +13,6 @@
# License for the specific language governing permissions and limitations
# under the License.
import netaddr
from tempest.lib.common.utils import data_utils
from tempest.tests import base
@ -137,43 +135,6 @@ class TestDataUtils(base.TestCase):
actual = data_utils.random_bytes(size=2048)
self.assertEqual(2048, len(actual))
def test_get_ipv6_addr_by_EUI64(self):
actual = data_utils.get_ipv6_addr_by_EUI64('2001:db8::',
'00:16:3e:33:44:55')
self.assertIsInstance(actual, netaddr.IPAddress)
self.assertEqual(actual,
netaddr.IPAddress('2001:db8::216:3eff:fe33:4455'))
def test_get_ipv6_addr_by_EUI64_with_IPv4_prefix(self):
ipv4_prefix = '10.0.8'
mac = '00:16:3e:33:44:55'
self.assertRaises(TypeError, data_utils.get_ipv6_addr_by_EUI64,
ipv4_prefix, mac)
def test_get_ipv6_addr_by_EUI64_bad_cidr_type(self):
bad_cidr = 123
mac = '00:16:3e:33:44:55'
self.assertRaises(TypeError, data_utils.get_ipv6_addr_by_EUI64,
bad_cidr, mac)
def test_get_ipv6_addr_by_EUI64_bad_cidr_value(self):
bad_cidr = 'bb'
mac = '00:16:3e:33:44:55'
self.assertRaises(TypeError, data_utils.get_ipv6_addr_by_EUI64,
bad_cidr, mac)
def test_get_ipv6_addr_by_EUI64_bad_mac_value(self):
cidr = '2001:db8::'
bad_mac = '00:16:3e:33:44:5Z'
self.assertRaises(TypeError, data_utils.get_ipv6_addr_by_EUI64,
cidr, bad_mac)
def test_get_ipv6_addr_by_EUI64_bad_mac_type(self):
cidr = '2001:db8::'
bad_mac = 99999999999999999999
self.assertRaises(TypeError, data_utils.get_ipv6_addr_by_EUI64,
cidr, bad_mac)
def test_chunkify(self):
data = "aaa"
chunks = data_utils.chunkify(data, 2)