summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
authorJohannes Erdfelt <johannes.erdfelt@rackspace.com>2011-05-16 20:25:28 +0000
committerTarmac <>2011-05-16 20:25:28 +0000
commit87577ceb58ff7fa96b992b504559eeb2022ffa41 (patch)
treeb480c094688bd6b5a4967b8dc3c69b04d09b0e5b /nova/db
parent76b0630b77b528a37a37b44d4c456f2c9ebea160 (diff)
parent3d1cef9e56d7fac8a1b89861b7443e4ca660e4a8 (diff)
This branch splits out the IPv6 address generation into pluggable backends. A new flag named ipv6_backend specifies which backend to use.
The existing code (which is also the default) is now available as nova.ipv6.rfc2462 while a new backend available as nova.ipv6.account_identifier implements an algorithm that includes an account identifier as part of the address.
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/sqlalchemy/api.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 285b22a04..2949eec49 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -25,6 +25,7 @@ import warnings
from nova import db
from nova import exception
from nova import flags
+from nova import ipv6
from nova import utils
from nova.db.sqlalchemy import models
from nova.db.sqlalchemy.session import get_session
@@ -744,7 +745,7 @@ def fixed_ip_get_all_by_instance(context, instance_id):
@require_context
def fixed_ip_get_instance_v6(context, address):
session = get_session()
- mac = utils.to_mac(address)
+ mac = ipv6.to_mac(address)
result = session.query(models.Instance).\
filter_by(mac_address=mac).\
@@ -974,7 +975,8 @@ def instance_get_fixed_address_v6(context, instance_id):
network_ref = network_get_by_instance(context, instance_id)
prefix = network_ref.cidr_v6
mac = instance_ref.mac_address
- return utils.to_global_ipv6(prefix, mac)
+ project_id = instance_ref.project_id
+ return ipv6.to_global(prefix, mac, project_id)
@require_context