From e2c4ee23642a00ebed0343ad2086b5c250f24516 Mon Sep 17 00:00:00 2001 From: sbauza Date: Thu, 29 Aug 2013 17:29:46 +0200 Subject: [PATCH] Fix Neutron issues related to Baremetal service When deploying devstack on a single host with a single NIC and baremetal and neutron services enabled, the host looses Internet access as default route is deleted. Also, if localrc is not correctly set with correct values, OVS ports and Neutron net and subnet aren't created (commands missing arguments), we need devstack to properly fail. Change-Id: I7f39bbdf7b8cb544b8b4a59effe16f04b85d1425 --- lib/neutron | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/neutron b/lib/neutron index dc3c622a7e..5664ff2cc5 100644 --- a/lib/neutron +++ b/lib/neutron @@ -327,6 +327,9 @@ function create_neutron_initial_network() { # Since neutron command is executed in admin context at this point, # ``--tenant_id`` needs to be specified. if is_baremetal; then + if [[ "$PUBLIC_INTERFACE" == '' || "$OVS_PHYSICAL_BRIDGE" == '' ]]; then + die $LINENO "Neutron settings for baremetal not set.. exiting" + fi sudo ovs-vsctl add-port $OVS_PHYSICAL_BRIDGE $PUBLIC_INTERFACE for IP in $(ip addr show dev $PUBLIC_INTERFACE | grep ' inet ' | awk '{print $2}'); do sudo ip addr del $IP dev $PUBLIC_INTERFACE @@ -335,6 +338,7 @@ function create_neutron_initial_network() { NET_ID=$(neutron net-create $PHYSICAL_NETWORK --tenant_id $TENANT_ID --provider:network_type flat --provider:physical_network "$PHYSICAL_NETWORK" | grep ' id ' | get_field 2) SUBNET_ID=$(neutron subnet-create --tenant_id $TENANT_ID --ip_version 4 ${ALLOCATION_POOL:+--allocation-pool $ALLOCATION_POOL} --gateway $NETWORK_GATEWAY --name $PRIVATE_SUBNET_NAME $NET_ID $FIXED_RANGE | grep ' id ' | get_field 2) sudo ifconfig $OVS_PHYSICAL_BRIDGE up + sudo route add default gw $NETWORK_GATEWAY dev $OVS_PHYSICAL_BRIDGE else NET_ID=$(neutron net-create --tenant_id $TENANT_ID "$PRIVATE_NETWORK_NAME" | grep ' id ' | get_field 2) SUBNET_ID=$(neutron subnet-create --tenant_id $TENANT_ID --ip_version 4 --gateway $NETWORK_GATEWAY --name $PRIVATE_SUBNET_NAME $NET_ID $FIXED_RANGE | grep ' id ' | get_field 2) @@ -493,7 +497,7 @@ function _configure_neutron_common() { # ``Q_PLUGIN_EXTRA_CONF_FILES=(file1, file2)`` neutron_plugin_configure_common - if [[ $Q_PLUGIN_CONF_PATH == '' || $Q_PLUGIN_CONF_FILENAME == '' || $Q_PLUGIN_CLASS == '' ]]; then + if [[ "$Q_PLUGIN_CONF_PATH" == '' || "$Q_PLUGIN_CONF_FILENAME" == '' || "$Q_PLUGIN_CLASS" == '' ]]; then die $LINENO "Neutron plugin not set.. exiting" fi