From e245eb2ff558e2fd77b37b57a56ad4583ef268a5 Mon Sep 17 00:00:00 2001 From: digambar Date: Mon, 27 Jul 2015 12:13:53 +0530 Subject: Implement kolla-compose script Renamed kolla script to kolla-compose Update change in the dev guide also Change-Id: I6cae3d13752ecb4bb3deeb91c5e0f827fde80c2a Implements: blueprint kolla-compose-script --- tools/kolla-compose | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100755 tools/kolla-compose (limited to 'tools/kolla-compose') diff --git a/tools/kolla-compose b/tools/kolla-compose new file mode 100755 index 000000000..4df9ea4db --- /dev/null +++ b/tools/kolla-compose @@ -0,0 +1,156 @@ +#!/bin/bash +# +# This script can be used to interact with kolla. + +# Move to top level directory +REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')") +cd "$(dirname "$REAL_PATH")/.." + +. tools/validate-docker-execute + +NETWORK_MANAGER=$(grep -sri NETWORK_MANAGER ./compose/openstack.env | cut -f2 -d'=') +if [[ -z "$NETWORK_MANAGER" ]]; then + echo 'No network manager defined in ./compose/openstack.env, defaulting to "neutron".' + NETWORK_MANAGER="neutron" +fi + +function process { + local service=$1 + echo "$ACTION $service" + docker-compose -f ./compose/${service}.yml $COMPOSE_CMD + if [[ $? -ne 0 ]]; then + echo "Call docker-compose -f ./compose/${service}.yml $COMPOSE_CMD fail." + exit 1 + fi +} + +function process_all { + process rabbitmq + process mariadb + process keystone + process glance-api-registry + process nova-api-conductor-scheduler-consoleauth-novncproxy + if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then + process nova-compute-network + else + # Defaulting to neutron + process nova-compute + process neutron-server + process neutron-linuxbridge-agent + process neutron-agents + fi + process heat-api-engine + process magnum-api-conductor + process horizon + process cinder-api-scheduler + process cinder-backup + process cinder-volume + process ceilometer + process gnocchi +} + +function check_selinux { + # Check for SELinux in Enforcing mode and exit if found + if [[ -x /usr/sbin/getenforce ]]; then + if [[ $(/usr/sbin/getenforce) == "Enforcing" ]]; then + echo "You must execute this script without SELinux enforcing mode." + echo "Turn off SELinux enforcing mode by running:" + echo "$ sudo setenforce permissive" + exit 1 + fi + fi +} + +function pre_start { + check_selinux + + if [[ -r ./openrc ]]; then + # Source openrc for commands + source ./openrc + else + echo 'Could not find ./openrc; bootstrap your environment with "./tools/genenv".' + exit 1 + fi +} + +function post_start { + echo -n "Waiting for OpenStack services to become available" + + until [ $(nova service-list 2>&1 | grep -c enabled) -ge 4 ]; do + echo -n . + sleep 2 + done + + until [ $(neutron agent-list 2>&1 | grep -c ':-)') -ge 4 ]; do + echo -n . + sleep 2 + done + echo " done" + + echo Example Usage: + echo source openrc # source keystone credentials + + echo Configure your environment once by running: + echo tools/init-runonce +} + +function usage { + cat <