summaryrefslogtreecommitdiff
path: root/openstack-cinder.configure
diff options
context:
space:
mode:
authorPedro Alvarez <pedro.alvarez@codethink.co.uk>2015-03-26 19:19:10 +0000
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2015-04-02 11:13:34 +0000
commit88a8c7a9958d664ef777a4968596e1bbc50e6f90 (patch)
treec35abeb04f00db89ac8295ffb935ffb2c6ac3d72 /openstack-cinder.configure
parent4ffab1eb73a90ba93ef47cf9833ff7b86c2ce9b4 (diff)
downloaddefinitions-88a8c7a9958d664ef777a4968596e1bbc50e6f90.tar.gz
cinder: Move setup scripts to Ansible.
Also change systemd units and configure extension to match this change
Diffstat (limited to 'openstack-cinder.configure')
-rw-r--r--openstack-cinder.configure80
1 files changed, 61 insertions, 19 deletions
diff --git a/openstack-cinder.configure b/openstack-cinder.configure
index a32ee3be..f3d07477 100644
--- a/openstack-cinder.configure
+++ b/openstack-cinder.configure
@@ -20,28 +20,70 @@ set -e
ROOT="$1"
##########################################################################
-# Substitutions in configuration files
+
+ln -sf "/etc/systemd/system/openstack-cinder-setup.service" \
+ "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-cinder-setup.service"
+
+##########################################################################
+# Check variables
##########################################################################
-cat <<EOF > "$ROOT"/etc/openstack-cinder-setup.sed
-s/##CINDER_USER##/$CINDER_USER/g
-s/##CINDER_PASSWORD##/$CINDER_PASSWORD/g
-s/##CINDER_PUBLIC_URL##/$CINDER_PUBLIC_URL/g
-s/##CINDER_INTERNAL_URL##/$CINDER_INTERNAL_URL/g
-s/##CINDER_ADMIN_URL##/$CINDER_ADMIN_URL/g
-s/##CINDER_USER_V2##/$CINDER_USER_V2/g
-s/##CINDER_PUBLIC_URL_V2##/$CINDER_PUBLIC_URL_V2/g
-s/##CINDER_INTERNAL_URL_V2##/$CINDER_INTERNAL_URL_V2/g
-s/##CINDER_ADMIN_URL_V2##/$CINDER_ADMIN_URL_V2/g
-s/##CINDER_DB_USER##/$CINDER_DB_USER/g
-s/##CINDER_DB_PASSWORD##/$CINDER_DB_PASSWORD/g
-EOF
+if [ -z "$RABBITMQ_HOST" -a \
+ -z "$RABBITMQ_PORT" -a \
+ -z "$RABBITMQ_USER" -a \
+ -z "$RABBITMQ_PASSWORD" -a \
+ -z "$KEYSTONE_TEMPORARY_ADMIN_TOKEN" -a \
+ -z "$CINDER_DB_USER" -a \
+ -z "$CINDER_DB_PASSWORD" -a \
+ -z "$CONTROLLER_HOST_ADDRESS" -a \
+ -z "$CINDER_USER" -a \
+ -z "$CINDER_PASSWORD" -a \
+ -z "$CINDER_DEVICE" -a \
+ -z "$MANAGEMENT_INTERFACE_IP_ADDRESS" ]; then
+ # No Cinder options defined, do nothing.
+ exit 0
+fi
-sed -f "$ROOT"/etc/openstack-cinder-setup.sed -i \
- "$ROOT"/etc/cinder/cinder.conf \
- "$ROOT"/usr/share/openstack/openstack-cinder-setup
+if [ -z "$RABBITMQ_HOST" -o \
+ -z "$RABBITMQ_PORT" -o \
+ -z "$RABBITMQ_USER" -o \
+ -z "$RABBITMQ_PASSWORD" -o \
+ -z "$KEYSTONE_TEMPORARY_ADMIN_TOKEN" -o \
+ -z "$CINDER_DB_USER" -o \
+ -z "$CINDER_DB_PASSWORD" -o \
+ -z "$CONTROLLER_HOST_ADDRESS" -o \
+ -z "$CINDER_USER" -o \
+ -z "$CINDER_PASSWORD" -o \
+ -z "$CINDER_DEVICE" -o \
+ -z "$MANAGEMENT_INTERFACE_IP_ADDRESS" ]; then
+ echo Some options required for Cinder were defined, but not all.
+ exit 1
+fi
##########################################################################
+# Generate config variable shell snippet
+##########################################################################
-ln -sf "/etc/systemd/system/openstack-cinder-setup.service" \
- "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-cinder-setup.service"
+OPENSTACK_DATA="$ROOT/etc/openstack"
+mkdir -p "$OPENSTACK_DATA"
+
+python <<'EOF' >"$OPENSTACK_DATA/cinder.conf"
+import os, sys, yaml
+
+cinder_configuration={
+ 'RABBITMQ_HOST':os.environ['RABBITMQ_HOST'],
+ 'RABBITMQ_PORT':os.environ['RABBITMQ_PORT'],
+ 'RABBITMQ_USER':os.environ['RABBITMQ_USER'],
+ 'RABBITMQ_PASSWORD':os.environ['RABBITMQ_PASSWORD'],
+ 'KEYSTONE_TEMPORARY_ADMIN_TOKEN':os.environ['KEYSTONE_TEMPORARY_ADMIN_TOKEN'],
+ 'CINDER_DB_USER':os.environ['CINDER_DB_USER'],
+ 'CINDER_DB_PASSWORD':os.environ['CINDER_DB_PASSWORD'],
+ 'CONTROLLER_HOST_ADDRESS':os.environ['CONTROLLER_HOST_ADDRESS'],
+ 'CINDER_USER':os.environ['CINDER_USER'],
+ 'CINDER_PASSWORD':os.environ['CINDER_PASSWORD'],
+ 'CINDER_DEVICE':os.environ['CINDER_DEVICE'],
+ 'MANAGEMENT_INTERFACE_IP_ADDRESS':os.environ['MANAGEMENT_INTERFACE_IP_ADDRESS'],
+}
+
+yaml.dump(cinder_configuration, sys.stdout, default_flow_style=False)
+EOF