From b8a67110c7a615d87bb39ce491bfbda26ca0cbf2 Mon Sep 17 00:00:00 2001
From: Steven Dake <stdake@cisco.com>
Date: Wed, 18 Mar 2015 14:27:56 -0700
Subject: [PATCH] Update start.sh

Clean up start.sh and make more functional

Change-Id: If9cb8a6a621991a28cf9b95c4fd0e5b7e780272a
---
 compose/start.sh | 85 ++++++++++++++++++++----------------------------
 1 file changed, 35 insertions(+), 50 deletions(-)

diff --git a/compose/start.sh b/compose/start.sh
index 1c533655c2..1de83a5c6c 100755
--- a/compose/start.sh
+++ b/compose/start.sh
@@ -1,4 +1,4 @@
-#!/bin/bash -x
+#!/bin/bash
 #
 # This script can be used to start a minimal set of containers that allows
 # you to boot an instance.  Note that it requires that you have some openstack
@@ -6,9 +6,16 @@
 # services are up.  You will also need these in order to interact with the
 # installation once started.
 
-setenforce 0
+# Set SELinux to permissive
+setenforce permissive
+
+# This directory is shared with the host to allow qemu instance
+# configs to remain accross restarts.  This is needed in the event libvirt
+# is not installed in the system.
+mkdir -p /etc/libvirt/qemu
 
 # This should probably go into nova-networking or nova-compute containers.
+# but you can't modprobe from a container for some reason
 modprobe ebtables
 
 MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
@@ -17,52 +24,22 @@ MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
 # Source openrc for commands
 source openrc
 
-echo Starting rabbitmq and mariadb
+echo Starting rabbitmq.
 docker-compose -f rabbitmq.yml up -d
+
+echo Starting mariadb.
 docker-compose -f mariadb.yml up -d
 
-until mysql -u root --password=kolla --host=$MY_IP mysql -e "show tables;"
-do
-    echo waiting for mysql..
-    sleep 3
-done
-
-echo Starting keystone
+echo Starting keystone.
 docker-compose -f keystone.yml up -d
 
-until keystone user-list
-do
-    echo waiting for keystone..
-    sleep 3
-done
-
-echo Starting glance
+echo Starting glance.
 docker-compose -f glance-api-registry.yml up -d
 
-echo Starting nova
+echo Starting nova.
 docker-compose -f nova-api-conductor-scheduler.yml up -d
 
-# I think we'll need this..
-#
-# until mysql -u root --password=kolla --host=$MY_IP mysql -e "use nova;"
-# do
-#     echo waiting for nova db.
-#     sleep 3
-# done
-
-echo "Waiting for nova-api to create keystone user.."
-until keystone user-list | grep nova
-do
-    echo waiting for keystone nova user
-    sleep 2
-done
-
-# This directory is shared with the host to allow qemu instance
-# configs to remain accross restarts.
-mkdir -p /etc/libvirt/qemu
-
-echo Starting nova compute
-
+echo Starting nova compute with nova networking.
 docker-compose -f nova-compute-network.yml up -d
 
 IMAGE_URL=http://download.cirros-cloud.net/0.3.3/
@@ -71,15 +48,23 @@ if ! [ -f "$IMAGE" ]; then
     curl -o $IMAGE $IMAGE_URL/$IMAGE
 fi
 
-echo "Creating glance image.."
-glance image-create --name "puffy_clouds" --is-public true --disk-format qcow2 --container-format bare --file $IMAGE
+until keystone user-list | grep glance
+do
+    echo "Waiting for OpenStack services to become available"
+    sleep 2
+done
 
-# Example usage:
-#
-# nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
-# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
-# nova network-create vmnet --fixed-range-v4=10.0.0.0/24 --bridge=br100 --multi-host=T
-#
-# nova keypair-add mykey > mykey.pem
-# chmod 600 mykey.pem
-# nova boot --flavor m1.medium --key_name mykey --image puffy_clouds newInstanceName
+sleep 3
+
+echo Creating glance image.
+glance image-create --name cirros --is-public false --disk-format qcow2 --container-format bare --file $IMAGE
+
+echo Example usage:
+echo
+echo nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
+echo nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
+echo nova network-create vmnet --fixed-range-v4=10.0.0.0/24 --bridge=br100 --multi-host=T
+echo
+echo nova keypair-add mykey > mykey.pem
+echo chmod 600 mykey.pem
+echo nova boot --flavor m1.medium --key_name mykey --image cirros kolla_vm