b396395df4
Current with due to LP#1478145 the kolla-compose script fails to create gnocchi containers. Temperory fix to skip gnocchi till we have gnocchi packges in delorean. Change-Id: I7dc6aef82908a846a8b632f86a16de47c1a2eef9 Partial-Bug: #1478145
158 lines
3.7 KiB
Bash
Executable File
158 lines
3.7 KiB
Bash
Executable File
#!/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
|
|
# TODO(coolsvap) add again with resolution for #LP1478145
|
|
#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 <<EOF
|
|
Usage: $0 COMMAND
|
|
|
|
Commands:
|
|
pull Pull all of the Docker images
|
|
start Start all kolla containers
|
|
status List running kolla containers
|
|
stop Stop all kolla containers
|
|
restart Restart all kolla containers
|
|
destroy Kill and remove all kolla containers and volumes
|
|
EOF
|
|
}
|
|
|
|
case "$1" in
|
|
|
|
(pull)
|
|
ACTION="Pulling"
|
|
COMPOSE_CMD="pull"
|
|
process_all
|
|
;;
|
|
|
|
(start)
|
|
ACTION="Starting"
|
|
COMPOSE_CMD="up -d"
|
|
pre_start
|
|
process_all
|
|
post_start
|
|
;;
|
|
|
|
(restart)
|
|
ACTION="Restarting"
|
|
COMPOSE_CMD="restart"
|
|
process_all
|
|
;;
|
|
|
|
(status)
|
|
ACTION="Status of"
|
|
COMPOSE_CMD="ps"
|
|
process_all
|
|
;;
|
|
|
|
(stop)
|
|
ACTION="Stopping"
|
|
COMPOSE_CMD="stop"
|
|
process_all
|
|
;;
|
|
|
|
(destroy)
|
|
ACTION="Destroying"
|
|
COMPOSE_CMD="kill"
|
|
process_all
|
|
COMPOSE_CMD="rm -f -v"
|
|
process_all
|
|
;;
|
|
|
|
(*) usage
|
|
exit 0
|
|
;;
|
|
esac
|