diff options
author | Eldar Nugaev <enugaev@griddynamics.com> | 2011-03-24 00:36:07 +0300 |
---|---|---|
committer | Eldar Nugaev <enugaev@griddynamics.com> | 2011-03-24 00:36:07 +0300 |
commit | 95fa499f1a7718694e37a747a6a5a0e309ce877d (patch) | |
tree | cb7a46eedf3058cbb995c4a7be676c31feace69e /nova/utils.py | |
parent | 514e748e3000f97a9d1c03ba3b5ab6faff79abfd (diff) | |
download | nova-95fa499f1a7718694e37a747a6a5a0e309ce877d.tar.gz nova-95fa499f1a7718694e37a747a6a5a0e309ce877d.tar.xz nova-95fa499f1a7718694e37a747a6a5a0e309ce877d.zip |
migration gateway_v6 to network_info
Diffstat (limited to 'nova/utils.py')
-rw-r--r-- | nova/utils.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/nova/utils.py b/nova/utils.py index 499af2039..44234813f 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -309,11 +309,15 @@ def get_my_linklocal(interface): def to_global_ipv6(prefix, mac): - mac64 = netaddr.EUI(mac).eui64().words - int_addr = int(''.join(['%02x' % i for i in mac64]), 16) - mac64_addr = netaddr.IPAddress(int_addr) - maskIP = netaddr.IPNetwork(prefix).ip - return (mac64_addr ^ netaddr.IPAddress('::0200:0:0:0') | maskIP).format() + try: + mac64 = netaddr.EUI(mac).eui64().words + int_addr = int(''.join(['%02x' % i for i in mac64]), 16) + mac64_addr = netaddr.IPAddress(int_addr) + maskIP = netaddr.IPNetwork(prefix).ip + return (mac64_addr ^ netaddr.IPAddress('::0200:0:0:0') | maskIP).\ + format() + except TypeError: + raise TypeError(_("Bad mac for to_global_ipv6: %s" % mac)) def to_mac(ipv6_address): |