diff options
| author | Jason Koelker <jason@koelker.net> | 2011-07-29 16:25:46 -0500 |
|---|---|---|
| committer | Jason Koelker <jason@koelker.net> | 2011-07-29 16:25:46 -0500 |
| commit | 99db7ffaeaba067f2914c59423bb1a953f860e57 (patch) | |
| tree | 88b7b778806c38b2fa7d915386f9f4f6a069fb4a | |
| parent | a14a18157bb53934b3a86fc4a7b9c58d2aae8d56 (diff) | |
| download | nova-99db7ffaeaba067f2914c59423bb1a953f860e57.tar.gz nova-99db7ffaeaba067f2914c59423bb1a953f860e57.tar.xz nova-99db7ffaeaba067f2914c59423bb1a953f860e57.zip | |
allow the manager to try to do the right thing
| -rw-r--r-- | nova/network/manager.py | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/nova/network/manager.py b/nova/network/manager.py index 4a3791d8a..bdb57d634 100644 --- a/nova/network/manager.py +++ b/nova/network/manager.py @@ -613,34 +613,39 @@ class NetworkManager(manager.SchedulerDependentManager): network_size, cidr_v6, gateway_v6, bridge, bridge_interface, dns1=None, dns2=None, **kwargs): """Create networks based on parameters.""" - fixed_net = netaddr.IPNetwork(cidr) - if FLAGS.use_ipv6: + if cidr_v6: 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 + if cidr: + fixed_net = netaddr.IPNetwork(cidr) significant_bits = 32 - int(math.log(network_size, 2)) - cidr = '%s/%s' % (fixed_net[start], significant_bits) - project_net = netaddr.IPNetwork(cidr) + + for index in range(num_networks): net = {} net['bridge'] = bridge net['bridge_interface'] = bridge_interface net['dns1'] = dns1 net['dns2'] = dns2 - net['cidr'] = cidr - net['multi_host'] = multi_host - net['netmask'] = str(project_net.netmask) - net['gateway'] = str(project_net[1]) - net['broadcast'] = str(project_net.broadcast) - net['dhcp_start'] = str(project_net[2]) + + if cidr: + start = index * network_size + project_net = netaddr.IPNetwork('%s/%s' % (fixed_net[start], + significant_bits)) + net['cidr'] = str(project_net) + net['multi_host'] = multi_host + net['netmask'] = str(project_net.netmask) + net['gateway'] = str(project_net[1]) + net['broadcast'] = str(project_net.broadcast) + net['dhcp_start'] = str(project_net[2]) + if num_networks > 1: net['label'] = '%s_%d' % (label, index) else: net['label'] = label - if FLAGS.use_ipv6: + if cidr_v6: start_v6 = index * network_size_v6 cidr_v6 = '%s/%s' % (fixed_net_v6[start_v6], significant_bits_v6) |
