summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJason Koelker <jason@koelker.net>2011-07-28 10:43:06 -0500
committerJason Koelker <jason@koelker.net>2011-07-28 10:43:06 -0500
commit3ead120b4b320de5bc700b2d6717485b76510762 (patch)
treeaa520962290f17706f089e6c488f25f1e2bd64ba /nova
parent9fff1bee5f6205f1146d28699a6dc4ee1692dd54 (diff)
parent26fd6c3f309a2febd7538684a470d462ab83dab3 (diff)
merge trunk
Diffstat (limited to 'nova')
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/034_change_instance_id_in_migrations.py7
-rw-r--r--nova/exception.py4
-rw-r--r--nova/network/manager.py18
-rw-r--r--nova/tests/fake_flags.py1
-rw-r--r--nova/virt/libvirt/vif.py2
5 files changed, 21 insertions, 11 deletions
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/034_change_instance_id_in_migrations.py b/nova/db/sqlalchemy/migrate_repo/versions/034_change_instance_id_in_migrations.py
index 9a447c270..4e8eaf0fd 100644
--- a/nova/db/sqlalchemy/migrate_repo/versions/034_change_instance_id_in_migrations.py
+++ b/nova/db/sqlalchemy/migrate_repo/versions/034_change_instance_id_in_migrations.py
@@ -36,8 +36,11 @@ def upgrade(migrate_engine):
migrations.create_column(instance_uuid)
if migrate_engine.name == "mysql":
- migrate_engine.execute("ALTER TABLE migrations DROP FOREIGN KEY " \
- "`migrations_ibfk_1`;")
+ try:
+ migrate_engine.execute("ALTER TABLE migrations DROP FOREIGN KEY " \
+ "`migrations_ibfk_1`;")
+ except Exception: # Don't care, just fail silently.
+ pass
migrations.c.instance_id.drop()
diff --git a/nova/exception.py b/nova/exception.py
index ea046b712..8c9b45a80 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -373,6 +373,10 @@ class StorageRepositoryNotFound(NotFound):
message = _("Cannot find SR to read/write VDI.")
+class NetworkNotCreated(NovaException):
+ message = _("%(req)s is required to create a network.")
+
+
class NetworkNotFound(NotFound):
message = _("Network %(network_id)s could not be found.")
diff --git a/nova/network/manager.py b/nova/network/manager.py
index 6f7573f66..4a3791d8a 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -68,7 +68,7 @@ LOG = logging.getLogger("nova.network.manager")
FLAGS = flags.FLAGS
-flags.DEFINE_string('flat_network_bridge', 'br100',
+flags.DEFINE_string('flat_network_bridge', None,
'Bridge for simple network instances')
flags.DEFINE_string('flat_network_dns', '8.8.4.4',
'Dns for simple network')
@@ -614,12 +614,13 @@ class NetworkManager(manager.SchedulerDependentManager):
bridge_interface, dns1=None, dns2=None, **kwargs):
"""Create networks based on parameters."""
fixed_net = netaddr.IPNetwork(cidr)
- fixed_net_v6 = netaddr.IPNetwork(cidr_v6)
- significant_bits_v6 = 64
- network_size_v6 = 1 << 64
+ 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
- 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)
@@ -640,6 +641,7 @@ class NetworkManager(manager.SchedulerDependentManager):
net['label'] = label
if FLAGS.use_ipv6:
+ start_v6 = index * network_size_v6
cidr_v6 = '%s/%s' % (fixed_net_v6[start_v6],
significant_bits_v6)
net['cidr_v6'] = cidr_v6
@@ -720,9 +722,9 @@ class FlatManager(NetworkManager):
"""Basic network where no vlans are used.
FlatManager does not do any bridge or vlan creation. The user is
- responsible for setting up whatever bridge is specified in
- flat_network_bridge (br100 by default). This bridge needs to be created
- on all compute hosts.
+ responsible for setting up whatever bridges are specified when creating
+ networks through nova-manage. This bridge needs to be created on all
+ compute hosts.
The idea is to create a single network for the host with a command like:
nova-manage network create 192.168.0.0/24 1 256. Creating multiple
diff --git a/nova/tests/fake_flags.py b/nova/tests/fake_flags.py
index 2297d2f0e..073216495 100644
--- a/nova/tests/fake_flags.py
+++ b/nova/tests/fake_flags.py
@@ -42,3 +42,4 @@ FLAGS['iscsi_num_targets'].SetDefault(8)
FLAGS['verbose'].SetDefault(True)
FLAGS['sqlite_db'].SetDefault("tests.sqlite")
FLAGS['use_ipv6'].SetDefault(True)
+FLAGS['flat_network_bridge'].SetDefault('br100')
diff --git a/nova/virt/libvirt/vif.py b/nova/virt/libvirt/vif.py
index 24d45d1a7..eef582fac 100644
--- a/nova/virt/libvirt/vif.py
+++ b/nova/virt/libvirt/vif.py
@@ -126,7 +126,7 @@ class LibvirtOpenVswitchDriver(VIFDriver):
dev = "tap-%s" % vif_id
try:
utils.execute('sudo', 'ovs-vsctl', 'del-port',
- FLAGS.flat_network_bridge, dev)
+ network['bridge'], dev)
utils.execute('sudo', 'ip', 'link', 'delete', dev)
except:
LOG.warning(_("Failed while unplugging vif of instance '%s'"),