aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorMartin André <martin.andre@kvhasia.com>2015-03-30 10:14:03 +0900
committerMartin André <martin.andre@kvhasia.com>2015-04-01 16:39:44 +0900
commit34872c1c2f68f4a410c423ed8b615822a29ff94a (patch)
treed68f9b10e68580956a2a3d20f28d8923f255aa25 /docker
parentcf3086ed3bca797ecc34e9c401951d1d64fe326a (diff)
downloadkolla-34872c1c2f68f4a410c423ed8b615822a29ff94a.tar.gz
kolla-34872c1c2f68f4a410c423ed8b615822a29ff94a.zip
Allow check_for_* functions to be consumed by wait_for
In order for the `check_for_*` functions to be consumed by `wait_for`, they should notify of their success but not exit. As a consequence, the previous behavior is restored by the fail_unless_* companion functions. With this change, it is now possible to do: wait_for 30 1 check_for_os_service_running keystone Change-Id: I16ddf8913027030c3ccb5487713d172904508fd6
Diffstat (limited to 'docker')
-rwxr-xr-xdocker/barbican/start.sh4
-rw-r--r--docker/base/kolla-common.sh49
-rw-r--r--docker/ceilometer/ceilometer-api/start.sh4
-rw-r--r--docker/ceilometer/ceilometer-central/start.sh2
-rw-r--r--docker/ceilometer/ceilometer-compute/start.sh2
-rwxr-xr-xdocker/cinder/start.sh28
-rwxr-xr-xdocker/glance/glance-api/start.sh2
-rwxr-xr-xdocker/glance/glance-registry/start.sh2
-rwxr-xr-xdocker/heat/heat-api/start.sh2
-rwxr-xr-xdocker/heat/heat-base/config-heat.sh2
-rwxr-xr-xdocker/heat/heat-engine/start.sh2
-rwxr-xr-xdocker/horizon/start.sh6
-rwxr-xr-xdocker/keystone/start.sh2
-rwxr-xr-xdocker/neutron/neutron-server/start.sh4
-rwxr-xr-xdocker/nova-controller/nova-api/start.sh4
-rwxr-xr-xdocker/nova-controller/nova-conductor/start.sh2
-rwxr-xr-xdocker/nova-controller/nova-scheduler/start.sh2
-rw-r--r--docker/swift/swift-account/start.sh4
-rw-r--r--docker/swift/swift-container/start.sh4
-rw-r--r--docker/swift/swift-object/start.sh4
-rwxr-xr-xdocker/zaqar/start.sh7
21 files changed, 74 insertions, 64 deletions
diff --git a/docker/barbican/start.sh b/docker/barbican/start.sh
index c90f66c47..673aa4339 100755
--- a/docker/barbican/start.sh
+++ b/docker/barbican/start.sh
@@ -15,8 +15,8 @@ fi
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
KEYSTONE_ADMIN_SERVICE_PORT BARBICAN_ADMIN_PASSWORD
-check_for_db
-check_for_keystone
+fail_unless_db
+fail_unless_os_service_running keystone
mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF
CREATE DATABASE IF NOT EXISTS ${BARBICAN_DB_NAME};
diff --git a/docker/base/kolla-common.sh b/docker/base/kolla-common.sh
index bc932a31d..1a6b0c815 100644
--- a/docker/base/kolla-common.sh
+++ b/docker/base/kolla-common.sh
@@ -103,43 +103,46 @@ wait_for_output() {
wait_for_output_unless $expected_output '' $@
}
-# Exit unless we receive a successful response from corresponding OpenStack
-# service.
-check_for_os_service() {
+# Check if we receive a successful response from corresponding OpenStack
+# service endpoint.
+check_for_os_service_endpoint() {
local name=$1
local host_var=$2
- local port=$3
+ local port_var=$3
local api_version=$4
- check_required_vars $host_var
+ check_required_vars $host_var $port_var
- local endpoint="http://${!host_var}:$port/$api_version"
+ local endpoint="http://${!host_var}:${!port_var}/$api_version"
curl -sf -o /dev/null "$endpoint" || {
echo "ERROR: $name is not available @ $endpoint" >&2
- exit 1
+ return 1
}
echo "$name is active @ $endpoint"
}
-check_for_glance() {
- check_for_os_service glance GLANCE_API_SERVICE_HOST 9292
-}
-
-check_for_keystone() {
- check_for_os_service keystone KEYSTONE_PUBLIC_SERVICE_HOST 5000 v2.0
-}
-
-check_for_nova() {
- check_for_os_service nova NOVA_API_SERVICE_HOST 8774
+check_for_os_service_running() {
+ local service=$1
+ local args=
+ case $service in
+ ("glance") args="GLANCE_API_SERVICE_HOST GLANCE_API_SERVICE_PORT" ;;
+ ("keystone") args="KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_PUBLIC_SERVICE_PORT v2.0" ;;
+ ("neutron") args="NEUTRON_SERVER_SERVICE_HOST NEUTRON_SERVER_SERVICE_PORT" ;;
+ ("nova") args="NOVA_API_SERVICE_HOST NOVA_API_SERVICE_PORT" ;;
+ (*)
+ echo "Unknown service $service"
+ return 1 ;;
+ esac
+ check_for_os_service_endpoint $service $args
}
-check_for_neutron() {
- check_for_os_service neutron NEUTRON_SERVER_SERVICE_HOST 9696
+fail_unless_os_service_running() {
+ check_for_os_service_running $@ || exit $?
}
-# Exit unless we receive a successful response from the database server.
+# Check if we receive a successful response from the database server.
# Optionally takes a database name to check for. Defaults to 'mysql'.
check_for_db() {
local database=${1:-mysql}
@@ -148,12 +151,16 @@ check_for_db() {
mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" \
-e "select 1" $database > /dev/null 2>&1 || {
echo "ERROR: database $database is not available @ $MARIADB_SERVICE_HOST" >&2
- exit 1
+ return 1
}
echo "database is active @ ${MARIADB_SERVICE_HOST}"
}
+fail_unless_db() {
+ check_for_db $@ || exit $?
+}
+
# Dump shell environment to a file
dump_vars() {
set -o posix
diff --git a/docker/ceilometer/ceilometer-api/start.sh b/docker/ceilometer/ceilometer-api/start.sh
index 1cd6d4c18..bca5a1aaa 100644
--- a/docker/ceilometer/ceilometer-api/start.sh
+++ b/docker/ceilometer/ceilometer-api/start.sh
@@ -12,8 +12,8 @@ check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME \
CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD \
CEILOMETER_API_SERVICE_HOST PUBLIC_IP
-check_for_keystone
-check_for_db
+fail_unless_os_service_running keystone
+fail_unless_db
#TODO(pkilambi): Add mongodb support
diff --git a/docker/ceilometer/ceilometer-central/start.sh b/docker/ceilometer/ceilometer-central/start.sh
index ec9951c90..406245f2d 100644
--- a/docker/ceilometer/ceilometer-central/start.sh
+++ b/docker/ceilometer/ceilometer-central/start.sh
@@ -6,7 +6,7 @@
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_AUTH_PROTOCOL \
KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT
-check_for_keystone
+fail_unless_os_service_running keystone
export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0"
diff --git a/docker/ceilometer/ceilometer-compute/start.sh b/docker/ceilometer/ceilometer-compute/start.sh
index 5b610b28a..84fe7ab1d 100644
--- a/docker/ceilometer/ceilometer-compute/start.sh
+++ b/docker/ceilometer/ceilometer-compute/start.sh
@@ -6,7 +6,7 @@
check_required_vars KEYSTONE_ADMIN_TOKEN RABBITMQ_SERVICE_HOST RABBIT_PASSWORD
-check_for_keystone
+fail_unless_os_service_running keystone
# Nova conf settings
crudini --set /etc/nova/nova.conf DEFAULT instance_usage_audit True
diff --git a/docker/cinder/start.sh b/docker/cinder/start.sh
index 4508d96f4..c0d796f02 100755
--- a/docker/cinder/start.sh
+++ b/docker/cinder/start.sh
@@ -1,4 +1,4 @@
-#!/bin/bash -e
+#!/bin/bash -e
: ${CINDER_DB_USER:=cinder}
: ${CINDER_DB_NAME:=cinder}
@@ -13,49 +13,49 @@ fi
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
CINDER_ADMIN_PASSWORD
-check_for_db
+fail_unless_db
mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF
-CREATE DATABASE IF NOT EXISTS ${CINDER_DB_NAME};
-GRANT ALL PRIVILEGES ON glance* TO
- '${CINDER_DB_USER}'@'%' IDENTIFIED BY '${CINDER_DB_PASSWORD}'
+CREATE DATABASE IF NOT EXISTS ${CINDER_DB_NAME};
+GRANT ALL PRIVILEGES ON glance* TO
+ '${CINDER_DB_USER}'@'%' IDENTIFIED BY '${CINDER_DB_PASSWORD}'
EOF
#-----Cinder.conf setup-----
# Cinder database
-crudini --set /etc/cinder/cinder.conf \
+crudini --set /etc/cinder/cinder.conf \
DEFAULT \
db_driver \
"cinder.db"
# Rabbit
-crudini --set /etc/cinder/cinder.conf \
+crudini --set /etc/cinder/cinder.conf \
DEFAULT \
rabbit_host \
"127.0.0.1"
-crudini --set /etc/cinder/cinder.conf \
+crudini --set /etc/cinder/cinder.conf \
DEFAULT \
rabbit_port \
"5672"
-crudini --set /etc/cinder/cinder.conf \
+crudini --set /etc/cinder/cinder.conf \
DEFAULT \
rabbit_hosts \
"127.0.0.1:5672"
-crudini --set /etc/cinder/cinder.conf \
+crudini --set /etc/cinder/cinder.conf \
DEFAULT \
rabbit_userid \
"guest"
-crudini --set /etc/cinder/cinder.conf \
+crudini --set /etc/cinder/cinder.conf \
DEFAULT \
rabbit_password \
"guest"
-crudini --set /etc/cinder/cinder.conf \
+crudini --set /etc/cinder/cinder.conf \
DEFAULT \
rabbit_virtual_host \
"/"
-crudini --set /etc/cinder/cinder.conf \
- DEFAULT \
+crudini --set /etc/cinder/cinder.conf \
+ DEFAULT \
rabbit_ha_queues \
"False"
diff --git a/docker/glance/glance-api/start.sh b/docker/glance/glance-api/start.sh
index 5dd1da5b3..a049b2841 100755
--- a/docker/glance/glance-api/start.sh
+++ b/docker/glance/glance-api/start.sh
@@ -15,7 +15,7 @@ wait_for 30 1 keystone \
--os-auth-url=http://${KEYSTONE_PUBLIC_SERVICE_HOST}:35357/v2.0 \
--os-username=admin --os-tenant-name=${ADMIN_TENANT_NAME} \
--os-password=${KEYSTONE_ADMIN_PASSWORD} endpoint-list
-check_for_keystone
+fail_unless_os_service_running keystone
export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
diff --git a/docker/glance/glance-registry/start.sh b/docker/glance/glance-registry/start.sh
index c4658d637..9a6271afe 100755
--- a/docker/glance/glance-registry/start.sh
+++ b/docker/glance/glance-registry/start.sh
@@ -8,7 +8,7 @@ set -e
check_required_vars GLANCE_DB_NAME GLANCE_DB_USER GLANCE_DB_PASSWORD
# lets wait for the DB to be available
wait_for 25 1 mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" -e 'status;'
-check_for_db
+fail_unless_db
mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
CREATE DATABASE IF NOT EXISTS ${GLANCE_DB_NAME} DEFAULT CHARACTER SET utf8;
diff --git a/docker/heat/heat-api/start.sh b/docker/heat/heat-api/start.sh
index b6565c207..f065c7de8 100755
--- a/docker/heat/heat-api/start.sh
+++ b/docker/heat/heat-api/start.sh
@@ -9,7 +9,7 @@ check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \
HEAT_API_SERVICE_HOST PUBLIC_IP
-check_for_keystone
+fail_unless_os_service_running keystone
export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
diff --git a/docker/heat/heat-base/config-heat.sh b/docker/heat/heat-base/config-heat.sh
index b85da7e77..e0f3852ee 100755
--- a/docker/heat/heat-base/config-heat.sh
+++ b/docker/heat/heat-base/config-heat.sh
@@ -16,7 +16,7 @@ set -e
check_required_vars HEAT_DB_PASSWORD HEAT_KEYSTONE_PASSWORD \
KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST
-check_for_db
+fail_unless_db
dump_vars
cat > /openrc <<EOF
diff --git a/docker/heat/heat-engine/start.sh b/docker/heat/heat-engine/start.sh
index e9d3f9e41..8eda98f3d 100755
--- a/docker/heat/heat-engine/start.sh
+++ b/docker/heat/heat-engine/start.sh
@@ -4,7 +4,7 @@
. /opt/kolla/config-heat.sh
check_required_vars HEAT_DB_NAME HEAT_DB_USER HEAT_DB_PASSWORD
-check_for_db
+fail_unless_db
mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
CREATE DATABASE IF NOT EXISTS ${HEAT_DB_NAME} DEFAULT CHARACTER SET utf8;
diff --git a/docker/horizon/start.sh b/docker/horizon/start.sh
index 5f65f72fe..f087a429e 100755
--- a/docker/horizon/start.sh
+++ b/docker/horizon/start.sh
@@ -5,9 +5,9 @@ set -e
. /opt/kolla/kolla-common.sh
-check_for_keystone
-check_for_glance
-check_for_nova
+fail_unless_os_service_running keystone
+fail_unless_os_service_running glance
+fail_unless_os_service_running nova
export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
diff --git a/docker/keystone/start.sh b/docker/keystone/start.sh
index 420295dcb..cb76496f9 100755
--- a/docker/keystone/start.sh
+++ b/docker/keystone/start.sh
@@ -37,7 +37,7 @@ echo "Running the kolla-common script"
## Check DB connectivity and required variables
echo "Checking connectivity to the DB"
-check_for_db
+fail_unless_db
echo "Checking for required variables"
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_DB_PASSWORD \
KEYSTONE_ADMIN_PASSWORD ADMIN_TENANT_NAME \
diff --git a/docker/neutron/neutron-server/start.sh b/docker/neutron/neutron-server/start.sh
index 91af87bb3..b121b6f95 100755
--- a/docker/neutron/neutron-server/start.sh
+++ b/docker/neutron/neutron-server/start.sh
@@ -11,8 +11,8 @@ check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \
ADMIN_TENANT_NAME NEUTRON_SERVER_SERVICE_HOST \
PUBLIC_IP NEUTRON_DB_PASSWORD
-check_for_keystone
-check_for_db
+fail_unless_os_service_running keystone
+fail_unless_db
mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
CREATE DATABASE IF NOT EXISTS ${NEUTRON_DB_NAME} DEFAULT CHARACTER SET utf8;
diff --git a/docker/nova-controller/nova-api/start.sh b/docker/nova-controller/nova-api/start.sh
index 723a3539e..90cc62976 100755
--- a/docker/nova-controller/nova-api/start.sh
+++ b/docker/nova-controller/nova-api/start.sh
@@ -8,8 +8,8 @@ check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \
ADMIN_TENANT_NAME NOVA_API_SERVICE_HOST \
NOVA_EC2_API_SERVICE_HOST PUBLIC_IP NOVA_DB_NAME
-check_for_keystone
-check_for_db $NOVA_DB_NAME
+fail_unless_os_service_running keystone
+fail_unless_db $NOVA_DB_NAME
export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
diff --git a/docker/nova-controller/nova-conductor/start.sh b/docker/nova-controller/nova-conductor/start.sh
index 831c80e80..599fb0246 100755
--- a/docker/nova-controller/nova-conductor/start.sh
+++ b/docker/nova-controller/nova-conductor/start.sh
@@ -5,7 +5,7 @@ set -e
. /opt/kolla/config-nova.sh
check_required_vars NOVA_DB_NAME NOVA_DB_USER NOVA_DB_PASSWORD
-check_for_db
+fail_unless_db
mysql -h ${MARIADB_SERVICE_HOST} -u root \
-p${DB_ROOT_PASSWORD} mysql <<EOF
diff --git a/docker/nova-controller/nova-scheduler/start.sh b/docker/nova-controller/nova-scheduler/start.sh
index da7f5f32a..087d477fe 100755
--- a/docker/nova-controller/nova-scheduler/start.sh
+++ b/docker/nova-controller/nova-scheduler/start.sh
@@ -5,6 +5,6 @@ set -e
. /opt/kolla/config-nova.sh
check_required_vars NOVA_DB_NAME
-check_for_db $NOVA_DB_NAME
+fail_unless_db $NOVA_DB_NAME
exec /usr/bin/nova-scheduler
diff --git a/docker/swift/swift-account/start.sh b/docker/swift/swift-account/start.sh
index 2fe6f2469..884a24742 100644
--- a/docker/swift/swift-account/start.sh
+++ b/docker/swift/swift-account/start.sh
@@ -8,8 +8,8 @@
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
SWIFT_ADMIN_PASSWORD
-check_for_db
-check_for_keystone
+fail_unless_db
+fail_unless_os_service_running keystone
if ! [ "$SWIFT_DB_PASSWORD" ]; then
SWIFT_DB_PASSWORD=$(openssl rand -hex 15)
diff --git a/docker/swift/swift-container/start.sh b/docker/swift/swift-container/start.sh
index 2a191e1d2..42b426c74 100644
--- a/docker/swift/swift-container/start.sh
+++ b/docker/swift/swift-container/start.sh
@@ -8,8 +8,8 @@
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
SWIFT_ADMIN_PASSWORD
-check_for_db
-check_for_keystone
+fail_unless_db
+fail_unless_os_service_running keystone
if ! [ "$SWIFT_DB_PASSWORD" ]; then
SWIFT_DB_PASSWORD=$(openssl rand -hex 15)
diff --git a/docker/swift/swift-object/start.sh b/docker/swift/swift-object/start.sh
index c43efc5fb..430a87b69 100644
--- a/docker/swift/swift-object/start.sh
+++ b/docker/swift/swift-object/start.sh
@@ -8,8 +8,8 @@
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
SWIFT_ADMIN_PASSWORD
-check_for_db
-check_for_keystone
+fail_unless_db
+fail_unless_os_service_running keystone
if ! [ "$SWIFT_DB_PASSWORD" ]; then
SWIFT_DB_PASSWORD=$(openssl rand -hex 15)
diff --git a/docker/zaqar/start.sh b/docker/zaqar/start.sh
index 6c68fccf2..04680c8f9 100755
--- a/docker/zaqar/start.sh
+++ b/docker/zaqar/start.sh
@@ -13,8 +13,9 @@ check_required_vars ZAQAR_KEYSTONE_PASSWORD ZAQAR_SERVER_SERVICE_HOST \
PUBLIC_IP
dump_vars
-#check_for_mongodb
-check_for_keystone
+# TODO Check for mongodb availability
+# https://bugs.launchpad.net/kolla/+bug/1394727
+fail_unless_os_service_running keystone
cat > /openrc <<EOF
export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0"
@@ -30,6 +31,8 @@ crudini --set $cfg DEFAULT log_file \
crudini --set $cfg DEFAULT use_stderr \
true
+# TODO Switch to mongodb
+# https://bugs.launchpad.net/kolla/+bug/1394727
crudini --set $cfg drivers storage \
sqlite