diff options
| author | Trey Morris <trey.morris@rackspace.com> | 2011-07-27 14:07:31 -0500 |
|---|---|---|
| committer | Trey Morris <trey.morris@rackspace.com> | 2011-07-27 14:07:31 -0500 |
| commit | 047c0e993e1dd63a2a6ad75ee40b892c0cd1aa25 (patch) | |
| tree | 8d9225207ec9411e2efaf46791a093b1fa2f3718 | |
| parent | 2b0134bdfa73e7eb616414b3f8cd1b5ed99b8283 (diff) | |
| download | nova-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.py | 39 |
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'] |
