summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrey Morris <trey.morris@rackspace.com>2011-07-27 14:07:31 -0500
committerTrey Morris <trey.morris@rackspace.com>2011-07-27 14:07:31 -0500
commit047c0e993e1dd63a2a6ad75ee40b892c0cd1aa25 (patch)
tree8d9225207ec9411e2efaf46791a093b1fa2f3718
parent2b0134bdfa73e7eb616414b3f8cd1b5ed99b8283 (diff)
downloadnova-047c0e993e1dd63a2a6ad75ee40b892c0cd1aa25.tar.gz
nova-047c0e993e1dd63a2a6ad75ee40b892c0cd1aa25.tar.xz
nova-047c0e993e1dd63a2a6ad75ee40b892c0cd1aa25.zip
updated handling of v6 in network manager create_networks to it can receive None for v6 args
-rw-r--r--nova/network/manager.py39
1 files changed, 19 insertions, 20 deletions
diff --git a/nova/network/manager.py b/nova/network/manager.py
index 77572b73d..dbcc76771 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -613,17 +613,31 @@ class NetworkManager(manager.SchedulerDependentManager):
network_size, cidr_v6, gateway_v6, bridge,
bridge_interface, dns1=None, dns2=None, **kwargs):
"""Create networks based on parameters."""
+ net_v6 = {}
+ 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],
+ significant_bits_v6)
+ net_v6['cidr_v6'] = cidr_v6
+
+ if gateway_v6:
+ # use a pre-defined gateway if one is provided
+ net_v6['gateway_v6'] = str(gateway_v6)
+ else:
+ net_v6['gateway_v6'] = str(project_net_v6[1])
+
+ net_v6['netmask_v6'] = str(project_net_v6._prefixlen)
+
fixed_net = netaddr.IPNetwork(cidr)
- 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
- start_v6 = index * network_size_v6
significant_bits = 32 - int(math.log(network_size, 2))
cidr = '%s/%s' % (fixed_net[start], significant_bits)
project_net = netaddr.IPNetwork(cidr)
- net = {}
+ net = dict(net_v6)
net['bridge'] = bridge
net['bridge_interface'] = bridge_interface
net['dns1'] = dns1
@@ -639,21 +653,6 @@ class NetworkManager(manager.SchedulerDependentManager):
else:
net['label'] = label
- if FLAGS.use_ipv6:
- 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)
- else:
- net['gateway_v6'] = str(project_net_v6[1])
-
- net['netmask_v6'] = str(project_net_v6._prefixlen)
-
if kwargs.get('vpn', False):
# this bit here is for vlan-manager
del net['dns1']