Merge "Cosmetic, comment and text cleanups"
diff --git a/HACKING.rst b/HACKING.rst
index 7262cff..e8f90c7 100644
--- a/HACKING.rst
+++ b/HACKING.rst
@@ -53,9 +53,23 @@
source $TOP_DIR/openrc
``stack.sh`` is a rather large monolithic script that flows through from beginning
-to end. There is a proposal to segment it to put the OpenStack projects
-into their own sub-scripts to better document the projects as a unit rather than
-have it scattered throughout ``stack.sh``. Someday.
+to end. The process of breaking it down into project-level sub-scripts has begun
+with the introduction of ``lib/cinder`` and ``lib/ceilometer``.
+
+These library sub-scripts have a number of fixed entry points, some of which may
+just be stubs. These entry points will be called by ``stack.sh`` in the
+following order::
+
+ install_XXXX
+ configure_XXXX
+ init_XXXX
+ start_XXXX
+ stop_XXXX
+ cleanup_XXXX
+
+There is a sub-script template in ``lib/templates`` to be used in creating new
+service sub-scripts. The comments in ``<>`` are meta comments describing
+how to use the template and should be removed.
Documentation
diff --git a/lib/template b/lib/template
new file mode 100644
index 0000000..d70f218
--- /dev/null
+++ b/lib/template
@@ -0,0 +1,77 @@
+# lib/template
+# Functions to control the configuration and operation of the XXXX service
+# <do not include this template file in ``stack.sh``!>
+
+# Dependencies:
+# ``functions`` file
+# ``SERVICE_{TENANT_NAME|PASSWORD}`` must be defined
+# <list other global vars that are assumed to be defined>
+
+# ``stack.sh`` calls the entry points in this order:
+#
+# install_XXXX
+# configure_XXXX
+# init_XXXX
+# start_XXXX
+# stop_XXXX
+# cleanup_XXXX
+
+# Print the commands being run so that we can see the command that triggers
+# an error. It is also useful for following along as the install occurs.
+set -o xtrace
+
+
+# Defaults
+# --------
+
+# <define global variables here that belong to this project>
+
+# Set up default directories
+XXXX_DIR=$DEST/XXXX
+XXX_CONF_DIR=/etc/XXXX
+
+
+# Entry Points
+# ------------
+
+# cleanup_XXXX() - Remove residual data files, anything left over from previous
+# runs that a clean run would need to clean up
+function cleanup_XXXX() {
+ # kill instances (nova)
+ # delete image files (glance)
+ # This function intentionally left blank
+ :
+}
+
+# configure_XXXX() - Set config files, create data dirs, etc
+function configure_XXXX() {
+ # sudo python setup.py deploy
+ # iniset $XXXX_CONF ...
+ # This function intentionally left blank
+ :
+}
+
+# init_XXXX() - Initialize databases, etc.
+function init_XXXX() {
+ # clean up from previous (possibly aborted) runs
+ # create required data files
+ :
+}
+
+# install_XXXX() - Collect source and prepare
+function install_XXXX() {
+ # git clone xxx
+ :
+}
+
+# start_XXXX() - Start running processes, including screen
+function start_XXXX()
+ # screen_it XXXX "cd $XXXX_DIR && $XXXX_DIR/bin/XXXX-bin"
+ :
+}
+
+# stop_XXXX() - Stop running processes (non-screen)
+function stop_XXXX() {
+ # FIXME(dtroyer): stop only our screen screen window?
+ :
+}
diff --git a/stack.sh b/stack.sh
index 12fa372..91380c5 100755
--- a/stack.sh
+++ b/stack.sh
@@ -1079,16 +1079,13 @@
iniset $GLANCE_REGISTRY_CONF DEFAULT sql_connection $BASE_SQL_CONN/glance?charset=utf8
iniset $GLANCE_REGISTRY_CONF DEFAULT use_syslog $SYSLOG
iniset $GLANCE_REGISTRY_CONF paste_deploy flavor keystone
-
- GLANCE_REGISTRY_PASTE_INI=$GLANCE_CONF_DIR/glance-registry-paste.ini
- cp $GLANCE_DIR/etc/glance-registry-paste.ini $GLANCE_REGISTRY_PASTE_INI
- iniset $GLANCE_REGISTRY_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
- iniset $GLANCE_REGISTRY_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT
- iniset $GLANCE_REGISTRY_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
- iniset $GLANCE_REGISTRY_PASTE_INI filter:authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/
- iniset $GLANCE_REGISTRY_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME
- iniset $GLANCE_REGISTRY_PASTE_INI filter:authtoken admin_user glance
- iniset $GLANCE_REGISTRY_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD
+ iniset $GLANCE_REGISTRY_CONF keystone_authtoken auth_host $KEYSTONE_AUTH_HOST
+ iniset $GLANCE_REGISTRY_CONF keystone_authtoken auth_port $KEYSTONE_AUTH_PORT
+ iniset $GLANCE_REGISTRY_CONF keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
+ iniset $GLANCE_REGISTRY_CONF keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/
+ iniset $GLANCE_REGISTRY_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
+ iniset $GLANCE_REGISTRY_CONF keystone_authtoken admin_user glance
+ iniset $GLANCE_REGISTRY_CONF keystone_authtoken admin_password $SERVICE_PASSWORD
GLANCE_API_CONF=$GLANCE_CONF_DIR/glance-api.conf
cp $GLANCE_DIR/etc/glance-api.conf $GLANCE_API_CONF
@@ -1098,6 +1095,13 @@
iniset $GLANCE_API_CONF DEFAULT use_syslog $SYSLOG
iniset $GLANCE_API_CONF DEFAULT filesystem_store_datadir $GLANCE_IMAGE_DIR/
iniset $GLANCE_API_CONF paste_deploy flavor keystone
+ iniset $GLANCE_API_CONF keystone_authtoken auth_host $KEYSTONE_AUTH_HOST
+ iniset $GLANCE_API_CONF keystone_authtoken auth_port $KEYSTONE_AUTH_PORT
+ iniset $GLANCE_API_CONF keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
+ iniset $GLANCE_API_CONF keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/
+ iniset $GLANCE_API_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
+ iniset $GLANCE_API_CONF keystone_authtoken admin_user glance
+ iniset $GLANCE_API_CONF keystone_authtoken admin_password $SERVICE_PASSWORD
# Store the images in swift if enabled.
if is_service_enabled swift; then
@@ -1108,15 +1112,11 @@
iniset $GLANCE_API_CONF DEFAULT swift_store_create_container_on_put True
fi
+ GLANCE_REGISTRY_PASTE_INI=$GLANCE_CONF_DIR/glance-registry-paste.ini
+ cp $GLANCE_DIR/etc/glance-registry-paste.ini $GLANCE_REGISTRY_PASTE_INI
+
GLANCE_API_PASTE_INI=$GLANCE_CONF_DIR/glance-api-paste.ini
cp $GLANCE_DIR/etc/glance-api-paste.ini $GLANCE_API_PASTE_INI
- iniset $GLANCE_API_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
- iniset $GLANCE_API_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT
- iniset $GLANCE_API_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
- iniset $GLANCE_API_PASTE_INI filter:authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/
- iniset $GLANCE_API_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME
- iniset $GLANCE_API_PASTE_INI filter:authtoken admin_user glance
- iniset $GLANCE_API_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD
GLANCE_POLICY_JSON=$GLANCE_CONF_DIR/policy.json
cp $GLANCE_DIR/etc/policy.json $GLANCE_POLICY_JSON
@@ -1159,14 +1159,19 @@
sudo sed -i -e "s/^sql_connection =.*$/sql_connection = mysql:\/\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\/$Q_DB_NAME?charset=utf8/g" /$Q_PLUGIN_CONF_FILE
OVS_ENABLE_TUNNELING=${OVS_ENABLE_TUNNELING:-True}
- if [[ "$Q_PLUGIN" = "openvswitch" && $OVS_ENABLE_TUNNELING = "True" ]]; then
+ if [[ "$Q_PLUGIN" = "openvswitch" && "$OVS_ENABLE_TUNNELING" = "True" ]]; then
OVS_VERSION=`ovs-vsctl --version | head -n 1 | awk '{print $4;}'`
if [ $OVS_VERSION \< "1.4" ] && ! is_service_enabled q-svc ; then
echo "You are running OVS version $OVS_VERSION."
echo "OVS 1.4+ is required for tunneling between multiple hosts."
exit 1
fi
- sudo sed -i -e "s/.*enable_tunneling = .*$/enable_tunneling = $OVS_ENABLE_TUNNELING/g" /$Q_PLUGIN_CONF_FILE
+ if [[ "$OVS_DEFAULT_BRIDGE" = "" ]]; then
+ iniset /$Q_PLUGIN_CONF_FILE OVS network_vlan_ranges ""
+ else
+ iniset /$Q_PLUGIN_CONF_FILE OVS network_vlan_ranges default
+ fi
+ iniset /$Q_PLUGIN_CONF_FILE OVS tunnel_id_ranges 1:1000
fi
Q_CONF_FILE=/etc/quantum/quantum.conf
@@ -1213,7 +1218,19 @@
sudo ovs-vsctl --no-wait -- --if-exists del-br $OVS_BRIDGE
sudo ovs-vsctl --no-wait add-br $OVS_BRIDGE
sudo ovs-vsctl --no-wait br-set-external-id $OVS_BRIDGE bridge-id br-int
- sudo sed -i -e "s/.*local_ip = .*/local_ip = $HOST_IP/g" /$Q_PLUGIN_CONF_FILE
+ if [[ "$OVS_ENABLE_TUNNELING" == "True" ]]; then
+ iniset /$Q_PLUGIN_CONF_FILE OVS local_ip $HOST_IP
+ else
+ # Need bridge if not tunneling
+ OVS_DEFAULT_BRIDGE=${OVS_DEFAULT_BRIDGE:-br-$GUEST_INTERFACE_DEFAULT}
+ fi
+ if [[ "$OVS_DEFAULT_BRIDGE" = "" ]]; then
+ iniset /$Q_PLUGIN_CONF_FILE OVS bridge_mappings ""
+ else
+ # Configure bridge manually with physical interface as port for multi-node
+ sudo ovs-vsctl --no-wait -- --may-exist add-br $OVS_DEFAULT_BRIDGE
+ iniset /$Q_PLUGIN_CONF_FILE OVS bridge_mappings default:$OVS_DEFAULT_BRIDGE
+ fi
AGENT_BINARY="$QUANTUM_DIR/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py"
elif [[ "$Q_PLUGIN" = "linuxbridge" ]]; then
# Start up the quantum <-> linuxbridge agent
diff --git a/tools/configure_tempest.sh b/tools/configure_tempest.sh
index d502248..0da5597 100755
--- a/tools/configure_tempest.sh
+++ b/tools/configure_tempest.sh
@@ -167,6 +167,10 @@
COMPUTE_LOG_LEVEL=ERROR
BUILD_INTERVAL=3
BUILD_TIMEOUT=400
+COMPUTE_BUILD_INTERVAL=3
+COMPUTE_BUILD_TIMEOUT=400
+VOLUME_BUILD_INTERVAL=3
+VOLUME_BUILD_TIMEOUT=300
RUN_SSH=True
# Check for DEFAULT_INSTANCE_USER and try to connect with that account
SSH_USER=${DEFAULT_INSTANCE_USER:-$OS_USERNAME}
@@ -219,6 +223,8 @@
s,%COMPUTE_LOG_LEVEL%,$COMPUTE_LOG_LEVEL,g;
s,%BUILD_INTERVAL%,$BUILD_INTERVAL,g;
s,%BUILD_TIMEOUT%,$BUILD_TIMEOUT,g;
+ s,%COMPUTE_BUILD_INTERVAL%,$COMPUTE_BUILD_INTERVAL,g;
+ s,%COMPUTE_BUILD_TIMEOUT%,$COMPUTE_BUILD_TIMEOUT,g;
s,%RUN_SSH%,$RUN_SSH,g;
s,%SSH_USER%,$SSH_USER,g;
s,%NETWORK_FOR_SSH%,$NETWORK_FOR_SSH,g;
@@ -246,6 +252,8 @@
s,%NETWORK_CATALOG_TYPE%,$NETWORK_CATALOG_TYPE,g;
s,%NETWORK_API_VERSION%,$NETWORK_API_VERSION,g;
s,%VOLUME_CATALOG_TYPE%,$VOLUME_CATALOG_TYPE,g;
+ s,%VOLUME_BUILD_INTERVAL%,$VOLUME_BUILD_INTERVAL,g;
+ s,%VOLUME_BUILD_TIMEOUT%,$VOLUME_BUILD_TIMEOUT,g;
" -i $TEMPEST_CONF
echo "Created tempest configuration file:"