Add configurable use of veths with Quantum+OVS.

 * This patch adds the ability to configure use of veths with
   OVS via the Q_OVS_USE_VETH variable.  The use of veths with OVS
   is required to support namespaces on RHEL.
 * Supports bug 1171727

Change-Id: I5f557d659684ead99a3e5e2b4df787699d9d3f05
diff --git a/lib/quantum b/lib/quantum
index 96ccf20..293ef3a 100644
--- a/lib/quantum
+++ b/lib/quantum
@@ -82,6 +82,8 @@
 Q_AUTH_STRATEGY=${Q_AUTH_STRATEGY:-keystone}
 # Use namespace or not
 Q_USE_NAMESPACE=${Q_USE_NAMESPACE:-True}
+# RHEL's support for namespaces requires using veths with ovs
+Q_OVS_USE_VETH=${Q_OVS_USE_VETH:-False}
 Q_USE_ROOTWRAP=${Q_USE_ROOTWRAP:-True}
 # Meta data IP
 Q_META_DATA_IP=${Q_META_DATA_IP:-$HOST_IP}
@@ -665,6 +667,11 @@
 }
 
 function _quantum_setup_interface_driver() {
+
+    # ovs_use_veth needs to be set before the plugin configuration
+    # occurs to allow plugins to override the setting.
+    iniset $1 DEFAULT ovs_use_veth $Q_OVS_USE_VETH
+
     quantum_plugin_setup_interface_driver $1
 }
 
diff --git a/lib/quantum_plugins/services/agent_loadbalancer b/lib/quantum_plugins/services/agent_loadbalancer
index b6528b0..ee3faa5 100644
--- a/lib/quantum_plugins/services/agent_loadbalancer
+++ b/lib/quantum_plugins/services/agent_loadbalancer
@@ -34,6 +34,11 @@
 
     cp $QUANTUM_DIR/etc/lbaas_agent.ini $LBAAS_AGENT_CONF_FILENAME
 
+    iniset $LBAAS_AGENT_CONF_FILENAME DEFAULT use_namespaces $Q_USE_NAMESPACE
+    # ovs_use_veth needs to be set before the plugin configuration
+    # occurs to allow plugins to override the setting.
+    iniset $LBAAS_AGENT_CONF_FILENAME DEFAULT ovs_use_veth $Q_OVS_USE_VETH
+
     quantum_plugin_setup_interface_driver $LBAAS_AGENT_CONF_FILENAME
 
     if is_fedora; then