diff options
author | Trey Morris <trey.morris@rackspace.com> | 2011-07-27 17:58:13 -0500 |
---|---|---|
committer | Trey Morris <trey.morris@rackspace.com> | 2011-07-27 17:58:13 -0500 |
commit | 45ff96e29669c5650873b0a7ddcf52160eddd27c (patch) | |
tree | df88465ddc2f9fd543cc1b66abd77879e1850cad | |
parent | f4c8c97cdd1ec9a9b6c7f271dcc92b1e716c3285 (diff) | |
download | nova-45ff96e29669c5650873b0a7ddcf52160eddd27c.tar.gz nova-45ff96e29669c5650873b0a7ddcf52160eddd27c.tar.xz nova-45ff96e29669c5650873b0a7ddcf52160eddd27c.zip |
fixed create_networks ipv6 management
-rw-r--r-- | nova/network/manager.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/nova/network/manager.py b/nova/network/manager.py index 34b26d728..37f8ea25d 100644 --- a/nova/network/manager.py +++ b/nova/network/manager.py @@ -614,6 +614,11 @@ class NetworkManager(manager.SchedulerDependentManager): bridge_interface, dns1=None, dns2=None, **kwargs): """Create networks based on parameters.""" fixed_net = netaddr.IPNetwork(cidr) + if FLAGS.use_ipv6: + fixed_net_v6 = netaddr.IPNetwork(cidr_v6) + significant_bits_v6 = 64 + network_size_v6 = 1 << 64 + for index in range(num_networks): start = index * network_size significant_bits = 32 - int(math.log(network_size, 2)) @@ -636,14 +641,12 @@ class NetworkManager(manager.SchedulerDependentManager): net['label'] = label if FLAGS.use_ipv6: - project_net_v6 = netaddr.IPNetwork(cidr_v6) - significant_bits_v6 = 64 - network_size_v6 = 1 << 64 - start_v6 = index * network_size_v6 - cidr_v6 = '%s/%s' % (project_net_v6[start_v6], + cidr_v6 = '%s/%s' % (fixed_net_v6[start_v6], significant_bits_v6) net['cidr_v6'] = cidr_v6 + project_net_v6 = netaddr.IPNetwork(cidr_v6) + if gateway_v6: # use a pre-defined gateway if one is provided net['gateway_v6'] = str(gateway_v6) |