aboutsummaryrefslogtreecommitdiff
path: root/docker/common/ceilometer/ceilometer-api
diff options
context:
space:
mode:
authorSwapnil Kulkarni <me@coolsvap.net>2015-07-03 06:14:29 +0000
committerSwapnil Kulkarni <me@coolsvap.net>2015-07-09 12:13:25 -0400
commit4c25113d30ae951e7d3a2f23fa5758e62ead8a8f (patch)
tree2ecdbe5341be0cdd4b0678b7ecc13d37e4b9c57d /docker/common/ceilometer/ceilometer-api
parentfcda6a06d8eee9d3f3199962b36a04a8c702072c (diff)
downloadkolla-4c25113d30ae951e7d3a2f23fa5758e62ead8a8f.tar.gz
kolla-4c25113d30ae951e7d3a2f23fa5758e62ead8a8f.zip
Add config-internal/config-external for Ceilometer
Partially Implements: Blueprint standard-start Change-Id: I0c9fea2014a23ca0b08f9a0946472cc877edacbc
Diffstat (limited to 'docker/common/ceilometer/ceilometer-api')
-rw-r--r--docker/common/ceilometer/ceilometer-api/config-external.sh10
-rw-r--r--docker/common/ceilometer/ceilometer-api/config-internal.sh51
-rw-r--r--docker/common/ceilometer/ceilometer-api/start.sh58
3 files changed, 75 insertions, 44 deletions
diff --git a/docker/common/ceilometer/ceilometer-api/config-external.sh b/docker/common/ceilometer/ceilometer-api/config-external.sh
new file mode 100644
index 000000000..2835bd5aa
--- /dev/null
+++ b/docker/common/ceilometer/ceilometer-api/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/ceilometer/ceilometer.conf"
+TARGET="/etc/ceilometer/ceilometer.conf"
+OWNER="ceilometer"
+
+if [[ -f "$SOURCE" ]]; then
+ cp $SOURCE $TARGET
+ chown ${OWNER}: $TARGET
+ chmod 0644 $TARGET
+fi
diff --git a/docker/common/ceilometer/ceilometer-api/config-internal.sh b/docker/common/ceilometer/ceilometer-api/config-internal.sh
new file mode 100644
index 000000000..f081c9f84
--- /dev/null
+++ b/docker/common/ceilometer/ceilometer-api/config-internal.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-ceilometer.sh
+
+check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME \
+ CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN \
+ KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_HOST \
+ KEYSTONE_ADMIN_SERVICE_PORT ADMIN_TENANT_NAME \
+ CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD \
+ CEILOMETER_API_SERVICE_HOST PUBLIC_IP
+
+fail_unless_os_service_running keystone
+fail_unless_db
+
+#TODO(pkilambi): Add mongodb support
+
+mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
+CREATE DATABASE IF NOT EXISTS ${CEILOMETER_DB_NAME} DEFAULT CHARACTER SET utf8;
+GRANT ALL PRIVILEGES ON ${CEILOMETER_DB_NAME}.* TO
+ '${CEILOMETER_DB_USER}'@'%' IDENTIFIED BY '${CEILOMETER_DB_PASSWORD}'
+
+EOF
+
+
+export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
+export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0"
+
+
+crux user-create -n ${CEILOMETER_KEYSTONE_USER} \
+ -p ${CEILOMETER_ADMIN_PASSWORD} \
+ -t ${ADMIN_TENANT_NAME} \
+ -r admin
+
+crux service-create -n ${CEILOMETER_KEYSTONE_USER} -t metering \
+ -d "Ceilometer Telemetry Service"
+
+crux endpoint-create i--remove-all -n ${CEILOMETER_KEYSTONE_USER} -t metering \
+ -I "${KEYSTONE_AUTH_PROTOCOL}://${CEILOMETER_API_SERVICE_HOST}:8777" \
+ -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8777" \
+ -A "${KEYSTONE_AUTH_PROTOCOL}://${CEILOMETER_API_SERVICE_HOST}:8777"
+
+cfg=/etc/ceilometer/ceilometer.conf
+crudini --set $cfg \
+ DEFAULT connection
+ "mysql://${CEILOMETER_DB_USER}:${CEILOMETER_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${CEILOMETER_DB_NAME}"
+
+
+exec /usr/bin/ceilometer-api
diff --git a/docker/common/ceilometer/ceilometer-api/start.sh b/docker/common/ceilometer/ceilometer-api/start.sh
index f081c9f84..0f660e025 100644
--- a/docker/common/ceilometer/ceilometer-api/start.sh
+++ b/docker/common/ceilometer/ceilometer-api/start.sh
@@ -1,51 +1,21 @@
#!/bin/bash
-set -e
+set -o errexit
-. /opt/kolla/kolla-common.sh
-. /opt/kolla/config-ceilometer.sh
+CMD="/usr/bin/ceilometer-api"
+ARGS=""
-check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME \
- CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN \
- KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_HOST \
- KEYSTONE_ADMIN_SERVICE_PORT ADMIN_TENANT_NAME \
- CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD \
- CEILOMETER_API_SERVICE_HOST PUBLIC_IP
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
-fail_unless_os_service_running keystone
-fail_unless_db
+# Config-internal script exec out of this function, it does not return here.
+set_configs
-#TODO(pkilambi): Add mongodb support
+# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
+# of the KOLLA_BOOTSTRAP variable being set, including empty.
+if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
+ su -s /bin/sh -c "ceilometer-manage db_sync" ceilometer
+ exit 0
+fi
-mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
-CREATE DATABASE IF NOT EXISTS ${CEILOMETER_DB_NAME} DEFAULT CHARACTER SET utf8;
-GRANT ALL PRIVILEGES ON ${CEILOMETER_DB_NAME}.* TO
- '${CEILOMETER_DB_USER}'@'%' IDENTIFIED BY '${CEILOMETER_DB_PASSWORD}'
-
-EOF
-
-
-export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
-export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0"
-
-
-crux user-create -n ${CEILOMETER_KEYSTONE_USER} \
- -p ${CEILOMETER_ADMIN_PASSWORD} \
- -t ${ADMIN_TENANT_NAME} \
- -r admin
-
-crux service-create -n ${CEILOMETER_KEYSTONE_USER} -t metering \
- -d "Ceilometer Telemetry Service"
-
-crux endpoint-create i--remove-all -n ${CEILOMETER_KEYSTONE_USER} -t metering \
- -I "${KEYSTONE_AUTH_PROTOCOL}://${CEILOMETER_API_SERVICE_HOST}:8777" \
- -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8777" \
- -A "${KEYSTONE_AUTH_PROTOCOL}://${CEILOMETER_API_SERVICE_HOST}:8777"
-
-cfg=/etc/ceilometer/ceilometer.conf
-crudini --set $cfg \
- DEFAULT connection
- "mysql://${CEILOMETER_DB_USER}:${CEILOMETER_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${CEILOMETER_DB_NAME}"
-
-
-exec /usr/bin/ceilometer-api
+exec $CMD $ARGS