summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2010-11-18 00:11:45 +0000
committerVishvananda Ishaya <vishvananda@gmail.com>2010-11-18 00:11:45 +0000
commit659058bef7913254eca63e7f67a5d74ffe146e57 (patch)
tree44afec574a9555f6ce6c520241e2a1d830bb003f /nova
parentff9b3b49090773070439d37df3149727fc7d3988 (diff)
fixes flatdhcp, updates nova.sh, allows for empty bridge device
Diffstat (limited to 'nova')
-rw-r--r--nova/network/linux_net.py7
-rw-r--r--nova/network/manager.py24
2 files changed, 19 insertions, 12 deletions
diff --git a/nova/network/linux_net.py b/nova/network/linux_net.py
index 7b323efa1..68037ed9a 100644
--- a/nova/network/linux_net.py
+++ b/nova/network/linux_net.py
@@ -42,7 +42,7 @@ flags.DEFINE_string('networks_path', utils.abspath('../networks'),
'Location to keep network config files')
flags.DEFINE_string('public_interface', 'vlan1',
'Interface for public IP addresses')
-flags.DEFINE_string('bridge_dev', 'eth0',
+flags.DEFINE_string('bridge_dev', None,
'network device for bridges')
flags.DEFINE_string('dhcpbridge', _bin_file('nova-dhcpbridge'),
'location of nova-dhcpbridge')
@@ -142,12 +142,13 @@ def ensure_vlan(vlan_num):
def ensure_bridge(bridge, interface, net_attrs=None):
"""Create a bridge unless it already exists"""
if not _device_exists(bridge):
- logging.debug("Starting Bridge inteface for %s", interface)
+ logging.debug("Starting Bridge interface for %s", interface)
_execute("sudo brctl addbr %s" % bridge)
_execute("sudo brctl setfd %s 0" % bridge)
# _execute("sudo brctl setageing %s 10" % bridge)
_execute("sudo brctl stp %s off" % bridge)
- _execute("sudo brctl addif %s %s" % (bridge, interface))
+ if interface:
+ _execute("sudo brctl addif %s %s" % (bridge, interface))
if net_attrs:
_execute("sudo ifconfig %s %s broadcast %s netmask %s up" % \
(bridge,
diff --git a/nova/network/manager.py b/nova/network/manager.py
index b033bb0a4..96f8cf50b 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -63,7 +63,7 @@ flags.DEFINE_string('flat_network_bridge', 'br100',
'Bridge for simple network instances')
flags.DEFINE_string('flat_network_dns', '8.8.4.4',
'Dns for simple network')
-flags.DEFINE_string('flat_network_dhcp_start', '192.168.0.2',
+flags.DEFINE_string('flat_network_dhcp_start', '10.0.0.2',
'Dhcp start for FlatDhcp')
flags.DEFINE_integer('vlan_start', 100, 'First VLAN for private networks')
flags.DEFINE_integer('num_networks', 1000, 'Number of networks to support')
@@ -285,6 +285,7 @@ class FlatManager(NetworkManager):
cidr = "%s/%s" % (fixed_net[start], significant_bits)
project_net = IPy.IP(cidr)
net = {}
+ net['bridge'] = FLAGS.flat_network_bridge
net['cidr'] = cidr
net['netmask'] = str(project_net.netmask())
net['gateway'] = str(project_net[1])
@@ -307,17 +308,23 @@ class FlatManager(NetworkManager):
"""Called when this host becomes the host for a network."""
net = {}
net['injected'] = True
- net['bridge'] = FLAGS.flat_network_bridge
net['dns'] = FLAGS.flat_network_dns
self.db.network_update(context, network_id, net)
-class FlatDHCPManager(NetworkManager):
+class FlatDHCPManager(FlatManager):
"""Flat networking with dhcp."""
+ def setup_compute_network(self, context, instance_id):
+ """Sets up matching network for compute hosts."""
+ network_ref = db.network_get_by_instance(context, instance_id)
+ self.driver.ensure_bridge(network_ref['bridge'],
+ FLAGS.bridge_dev,
+ network_ref)
+
def setup_fixed_ip(self, context, address):
"""Setup dhcp for this network."""
- network_ref = db.fixed_ip_get_by_address(context, address)
+ network_ref = db.fixed_ip_get_network(context, address)
self.driver.update_dhcp(context, network_ref['id'])
def deallocate_fixed_ip(self, context, address, *args, **kwargs):
@@ -326,11 +333,10 @@ class FlatDHCPManager(NetworkManager):
def _on_set_network_host(self, context, network_id):
"""Called when this host becomes the host for a project."""
- super(FlatDHCPManager, self)._on_set_network_host(context, network_id)
- network_ref = self.db.network_get(context, network_id)
- self.db.network_update(context,
- network_id,
- {'dhcp_start': FLAGS.flat_network_dhcp_start})
+ net = {}
+ net['dhcp_start'] = FLAGS.flat_network_dhcp_start
+ self.db.network_update(context, network_id, net)
+ network_ref = db.network_get(context, network_id)
self.driver.ensure_bridge(network_ref['bridge'],
FLAGS.bridge_dev,
network_ref)