Browse code

Unify the way devstack configures networking for libvirt and xenserver

Change-Id: I839ccabef6556415653c6f957279585ef2ef7d8d

John Garbutt authored on 2012/03/03 01:22:07
Showing 1 changed files
... ...
@@ -290,14 +290,26 @@ function is_service_enabled() {
290 290
 # FIXME: more documentation about why these are important flags.  Also
291 291
 # we should make sure we use the same variable names as the flag names.
292 292
 
293
+if [ "$VIRT_DRIVER" = 'xenserver' ]; then
294
+    PUBLIC_INTERFACE_DEFAULT=eth3
295
+    # allow build_domU.sh to specify the flat network bridge via kernel args
296
+    FLAT_NETWORK_BRIDGE_DEFAULT=$(grep -o 'flat_network_bridge=[^.]*' /proc/cmdline | cut -d= -f 2)
297
+    GUEST_INTERFACE_DEFAULT=eth1
298
+else
299
+    PUBLIC_INTERFACE_DEFAULT=br100
300
+    FLAT_NETWORK_BRIDGE_DEFAULT=br100
301
+    GUEST_INTERFACE_DEFAULT=eth0
302
+fi
303
+
304
+PUBLIC_INTERFACE=${PUBLIC_INTERFACE:-$PUBLIC_INTERFACE_DEFAULT}
293 305
 PUBLIC_INTERFACE=${PUBLIC_INTERFACE:-br100}
294 306
 FIXED_RANGE=${FIXED_RANGE:-10.0.0.0/24}
295 307
 FIXED_NETWORK_SIZE=${FIXED_NETWORK_SIZE:-256}
296 308
 FLOATING_RANGE=${FLOATING_RANGE:-172.24.4.224/28}
297 309
 NET_MAN=${NET_MAN:-FlatDHCPManager}
298 310
 EC2_DMZ_HOST=${EC2_DMZ_HOST:-$SERVICE_HOST}
299
-FLAT_NETWORK_BRIDGE=${FLAT_NETWORK_BRIDGE:-br100}
300
-VLAN_INTERFACE=${VLAN_INTERFACE:-eth0}
311
+FLAT_NETWORK_BRIDGE=${FLAT_NETWORK_BRIDGE:-$FLAT_NETWORK_BRIDGE_DEFAULT}
312
+VLAN_INTERFACE=${VLAN_INTERFACE:-$GUEST_INTERFACE_DEFAULT}
301 313
 
302 314
 # Test floating pool and range are used for testing.  They are defined
303 315
 # here until the admin APIs can replace nova-manage
... ...
@@ -323,7 +335,7 @@ MULTI_HOST=${MULTI_HOST:-False}
323 323
 # devices other than that node, you can set the flat interface to the same
324 324
 # value as ``FLAT_NETWORK_BRIDGE``.  This will stop the network hiccup from
325 325
 # occurring.
326
-FLAT_INTERFACE=${FLAT_INTERFACE:-eth0}
326
+FLAT_INTERFACE=${FLAT_INTERFACE:-$GUEST_INTERFACE_DEFAULT}
327 327
 
328 328
 ## FIXME(ja): should/can we check that FLAT_INTERFACE is sane?
329 329
 
... ...
@@ -1213,6 +1225,10 @@ add_nova_flag "--osapi_compute_extension=nova.api.openstack.compute.contrib.stan
1213 1213
 add_nova_flag "--my_ip=$HOST_IP"
1214 1214
 add_nova_flag "--public_interface=$PUBLIC_INTERFACE"
1215 1215
 add_nova_flag "--vlan_interface=$VLAN_INTERFACE"
1216
+add_nova_flag "--flat_network_bridge=$FLAT_NETWORK_BRIDGE"
1217
+if [ -n "$FLAT_INTERFACE" ]; then
1218
+    add_nova_flag "--flat_interface=$FLAT_INTERFACE"
1219
+fi
1216 1220
 add_nova_flag "--sql_connection=$BASE_SQL_CONN/nova"
1217 1221
 add_nova_flag "--libvirt_type=$LIBVIRT_TYPE"
1218 1222
 add_nova_flag "--instance_name_template=${INSTANCE_NAME_PREFIX}%08x"
... ...
@@ -1262,17 +1278,12 @@ done
1262 1262
 # ---------
1263 1263
 
1264 1264
 if [ "$VIRT_DRIVER" = 'xenserver' ]; then
1265
-    # Get the VM bridge
1266
-    FLAT_NETWORK_BRIDGE=$(grep -o 'flat_network_bridge=[^.]*' /proc/cmdline | cut -d= -f 2)
1267 1265
     read_password XENAPI_PASSWORD "ENTER A PASSWORD TO USE FOR XEN."
1268 1266
     add_nova_flag "--connection_type=xenapi"
1269 1267
     add_nova_flag "--xenapi_connection_url=http://169.254.0.1"
1270 1268
     add_nova_flag "--xenapi_connection_username=root"
1271 1269
     add_nova_flag "--xenapi_connection_password=$XENAPI_PASSWORD"
1272 1270
     add_nova_flag "--noflat_injected"
1273
-    add_nova_flag "--flat_interface=eth1"
1274
-    add_nova_flag "--flat_network_bridge=${FLAT_NETWORK_BRIDGE}"
1275
-    add_nova_flag "--public_interface=${HOST_IP_IFACE}"
1276 1271
     # Need to avoid crash due to new firewall support
1277 1272
     XEN_FIREWALL_DRIVER=${XEN_FIREWALL_DRIVER:-"nova.virt.firewall.IptablesFirewallDriver"}
1278 1273
     add_nova_flag "--firewall_driver=$XEN_FIREWALL_DRIVER"
... ...
@@ -1280,10 +1291,6 @@ else
1280 1280
     add_nova_flag "--connection_type=libvirt"
1281 1281
     LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
1282 1282
     add_nova_flag "--firewall_driver=$LIBVIRT_FIREWALL_DRIVER"
1283
-    add_nova_flag "--flat_network_bridge=$FLAT_NETWORK_BRIDGE"
1284
-    if [ -n "$FLAT_INTERFACE" ]; then
1285
-        add_nova_flag "--flat_interface=$FLAT_INTERFACE"
1286
-    fi
1287 1283
 fi
1288 1284
 
1289 1285
 # Nova Database