Merge "Periodic formatting cleanup"
diff --git a/README.md b/README.md
index 8573638..905a54d 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,19 @@
Then run `stack.sh` as normal.
+devstack supports adding specific Quantum configuration flags to both the Open vSwitch and LinuxBridge plugin configuration files. To make use of this feature, the following variables are defined and can be configured in your `localrc` file:
+
+ Variable Name Plugin Config File Section Modified
+ -------------------------------------------------------------------------------------
+ Q_SRV_EXTRA_OPTS `OVS` (for Open Vswitch) or `LINUX_BRIDGE` (for LinuxBridge)
+ Q_AGENT_EXTRA_AGENT_OPTS AGENT
+ Q_AGENT_EXTRA_SRV_OPTS `OVS` (for Open Vswitch) or `LINUX_BRIDGE` (for LinuxBridge)
+
+An example of using the variables in your `localrc` is below:
+
+ Q_AGENT_EXTRA_AGENT_OPTS=(tunnel_type=vxlan vxlan_udp_port=8472)
+ Q_SRV_EXTRA_OPTS=(tenant_network_type=vxlan)
+
# Tempest
If tempest has been successfully configured, a basic set of smoke tests can be run as follows:
diff --git a/exercises/euca.sh b/exercises/euca.sh
index d704279..16b5f8e 100755
--- a/exercises/euca.sh
+++ b/exercises/euca.sh
@@ -162,7 +162,7 @@
# case changed with bug/836978. Requesting the status of an invalid instance
# will now return an error message including the instance id, so we need to
# filter that out.
-if ! timeout $TERMINATE_TIMEOUT sh -c "while euca-describe-instances $INSTANCE | grep -ve \"\\\(InstanceNotFound\\\|InvalidInstanceID\[.\]NotFound\\\)\" | grep -q $INSTANCE; do sleep 1; done"; then
+if ! timeout $TERMINATE_TIMEOUT sh -c "while euca-describe-instances $INSTANCE | grep -ve '\(InstanceNotFound\|InvalidInstanceID\.NotFound\)' | grep -q $INSTANCE; do sleep 1; done"; then
die $LINENO "server didn't terminate within $TERMINATE_TIMEOUT seconds"
fi
diff --git a/lib/cinder b/lib/cinder
index 7e9c2ba..6636397 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -194,7 +194,7 @@
iniset $CINDER_CONF lvmdriver-1 volume_backend_name LVM_iSCSI
iniset $CINDER_CONF lvmdriver-2 volume_group $VOLUME_GROUP2
iniset $CINDER_CONF lvmdriver-2 volume_driver cinder.volume.drivers.lvm.LVMISCSIDriver
- iniset $CINDER_CONF lvmdriver-2 volume_backend_name LVM_iSCSI
+ iniset $CINDER_CONF lvmdriver-2 volume_backend_name LVM_iSCSI_2
else
iniset $CINDER_CONF DEFAULT volume_group $VOLUME_GROUP
iniset $CINDER_CONF DEFAULT volume_name_template ${VOLUME_NAME_PREFIX}%s
diff --git a/lib/quantum b/lib/quantum
index 15c8f19..1a826f8 100644
--- a/lib/quantum
+++ b/lib/quantum
@@ -52,6 +52,10 @@
# Quantum.
#
# With Quantum networking the NETWORK_MANAGER variable is ignored.
+#
+# To enable specific configuration options for either the Open vSwitch or
+# LinuxBridge plugin, please see the top level README file under the
+# Quantum section.
# Save trace setting
XTRACE=$(set +o | grep xtrace)
diff --git a/lib/quantum_plugins/linuxbridge b/lib/quantum_plugins/linuxbridge
index 71832f1..dffa32b 100644
--- a/lib/quantum_plugins/linuxbridge
+++ b/lib/quantum_plugins/linuxbridge
@@ -35,6 +35,14 @@
else
iniset /$Q_PLUGIN_CONF_FILE SECURITYGROUP firewall_driver quantum.agent.firewall.NoopFirewallDriver
fi
+
+ # Define extra "LINUX_BRIDGE" configuration options when q-svc is configured by defining
+ # the array ``Q_SRV_EXTRA_OPTS``.
+ # For Example: ``Q_SRV_EXTRA_OPTS=(foo=true bar=2)``
+ for I in "${Q_SRV_EXTRA_OPTS[@]}"; do
+ # Replace the first '=' with ' ' for iniset syntax
+ iniset /$Q_PLUGIN_CONF_FILE LINUX_BRIDGE ${I/=/ }
+ done
}
function has_quantum_plugin_security_group() {
diff --git a/lib/quantum_plugins/linuxbridge_agent b/lib/quantum_plugins/linuxbridge_agent
index 1e83275..7855cd0 100644
--- a/lib/quantum_plugins/linuxbridge_agent
+++ b/lib/quantum_plugins/linuxbridge_agent
@@ -47,6 +47,20 @@
iniset /$Q_PLUGIN_CONF_FILE SECURITYGROUP firewall_driver quantum.agent.firewall.NoopFirewallDriver
fi
AGENT_BINARY="$QUANTUM_DIR/bin/quantum-linuxbridge-agent"
+ # Define extra "AGENT" configuration options when q-agt is configured by defining
+ # the array ``Q_AGENT_EXTRA_AGENT_OPTS``.
+ # For Example: ``Q_AGENT_EXTRA_AGENT_OPTS=(foo=true bar=2)``
+ for I in "${Q_AGENT_EXTRA_AGENT_OPTS[@]}"; do
+ # Replace the first '=' with ' ' for iniset syntax
+ iniset /$Q_PLUGIN_CONF_FILE AGENT ${I/=/ }
+ done
+ # Define extra "LINUX_BRIDGE" configuration options when q-agt is configured by defining
+ # the array ``Q_AGENT_EXTRA_SRV_OPTS``.
+ # For Example: ``Q_AGENT_EXTRA_SRV_OPTS=(foo=true bar=2)``
+ for I in "${Q_AGENT_EXTRA_SRV_OPTS[@]}"; do
+ # Replace the first '=' with ' ' for iniset syntax
+ iniset /$Q_PLUGIN_CONF_FILE LINUX_BRIDGE ${I/=/ }
+ done
}
function quantum_plugin_setup_interface_driver() {
diff --git a/lib/quantum_plugins/openvswitch b/lib/quantum_plugins/openvswitch
index cd29c19..e53db8a 100644
--- a/lib/quantum_plugins/openvswitch
+++ b/lib/quantum_plugins/openvswitch
@@ -42,6 +42,14 @@
fi
_quantum_ovs_base_configure_firewall_driver
+
+ # Define extra "OVS" configuration options when q-svc is configured by defining
+ # the array ``Q_SRV_EXTRA_OPTS``.
+ # For Example: ``Q_SRV_EXTRA_OPTS=(foo=true bar=2)``
+ for I in "${Q_SRV_EXTRA_OPTS[@]}"; do
+ # Replace the first '=' with ' ' for iniset syntax
+ iniset /$Q_PLUGIN_CONF_FILE OVS ${I/=/ }
+ done
}
function has_quantum_plugin_security_group() {
diff --git a/lib/quantum_plugins/openvswitch_agent b/lib/quantum_plugins/openvswitch_agent
index 87f5e97..ee761ed 100644
--- a/lib/quantum_plugins/openvswitch_agent
+++ b/lib/quantum_plugins/openvswitch_agent
@@ -102,6 +102,20 @@
# Set root wrap
iniset "/$Q_PLUGIN_CONF_FILE.domU" AGENT root_helper "$Q_RR_COMMAND"
fi
+ # Define extra "AGENT" configuration options when q-agt is configured by defining
+ # defining the array ``Q_AGENT_EXTRA_AGENT_OPTS``.
+ # For Example: ``Q_AGENT_EXTRA_AGENT_OPTS=(foo=true bar=2)``
+ for I in "${Q_AGENT_EXTRA_AGENT_OPTS[@]}"; do
+ # Replace the first '=' with ' ' for iniset syntax
+ iniset /$Q_PLUGIN_CONF_FILE AGENT ${I/=/ }
+ done
+ # Define extra "OVS" configuration options when q-agt is configured by defining
+ # defining the array ``Q_AGENT_EXTRA_SRV_OPTS``.
+ # For Example: ``Q_AGENT_EXTRA_SRV_OPTS=(foo=true bar=2)``
+ for I in "${Q_AGENT_EXTRA_SRV_OPTS[@]}"; do
+ # Replace the first '=' with ' ' for iniset syntax
+ iniset /$Q_PLUGIN_CONF_FILE OVS ${I/=/ }
+ done
}
function quantum_plugin_setup_interface_driver() {
diff --git a/lib/tempest b/lib/tempest
index a259ee9..8018166 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -23,6 +23,7 @@
# ``USE_BLOCK_MIGRATION_FOR_LIVE_MIGRATION``
# ``DEFAULT_INSTANCE_TYPE``
# ``DEFAULT_INSTANCE_USER``
+# ``CINDER_MULTI_LVM_BACKEND``
# ``stack.sh`` calls the entry points in this order:
#
# install_tempest
@@ -44,7 +45,7 @@
NOVA_SOURCE_DIR=$DEST/nova
-BUILD_INTERVAL=3
+BUILD_INTERVAL=1
BUILD_TIMEOUT=400
@@ -234,11 +235,10 @@
iniset $TEMPEST_CONF whitebox path_to_private_key $TEMPEST_DIR/id_rsa
iniset $TEMPEST_CONF whitebox db_uri $BASE_SQL_CONN/nova
-
- # compute admin
+ # Compute admin
iniset $TEMPEST_CONF "compute-admin" password "$password" # DEPRECATED
- # network
+ # Network
if is_service_enabled quantum; then
iniset $TEMPEST_CONF network quantum_available "True"
fi
@@ -247,7 +247,7 @@
iniset $TEMPEST_CONF network public_network_id "$public_network_id"
iniset $TEMPEST_CONF network public_router_id "$public_router_id"
- #boto
+ # boto
iniset $TEMPEST_CONF boto ec2_url "http://$SERVICE_HOST:8773/services/Cloud"
iniset $TEMPEST_CONF boto s3_url "http://$SERVICE_HOST:${S3_SERVICE_PORT:-3333}"
iniset $TEMPEST_CONF boto s3_materials_path "$BOTO_MATERIALS_PATH"
@@ -255,11 +255,19 @@
iniset $TEMPEST_CONF boto http_socket_timeout 30
iniset $TEMPEST_CONF boto ssh_user ${DEFAULT_INSTANCE_USER:-cirros}
- # orchestration
+ # Orchestration
if is_service_enabled heat; then
iniset $TEMPEST_CONF orchestration heat_available "True"
fi
+ # Volume
+ CINDER_MULTI_LVM_BACKEND=$(trueorfalse False $CINDER_MULTI_LVM_BACKEND)
+ if [ $CINDER_MULTI_LVM_BACKEND == "True "]; then
+ iniset $TEMPEST_CONF volume multi_backend_enabled "True"
+ iniset $TEMPEST_CONF volume backend1_name "LVM_iSCSI"
+ iniset $TEMPEST_CONF volume backend2_name "LVM_iSCSI_2"
+ fi
+
echo "Created tempest configuration file:"
cat $TEMPEST_CONF