#!/bin/bash
export CC_JOB_DIR=/var/vcap/jobs/cloud_controller_ng
export PATH=/var/vcap/packages/ruby/bin:$PATH
CC_PACKAGE_DIR=/var/vcap/packages/cloud_controller_ng
RUN_DIR=/var/vcap/sys/run/cloud_controller_ng
LOG_DIR=/var/vcap/sys/log/cloud_controller_ng
PIDFILE=$RUN_DIR/cloud_controller_ng.pid
export CONFIG_DIR=$CC_JOB_DIR/config
export CLOUD_CONTROLLER_NG_CONFIG=$CONFIG_DIR/cloud_controller_ng.yml
export BUNDLE_GEMFILE=$CC_PACKAGE_DIR/cloud_controller_ng/Gemfile
export HOME=/home/vcap # rake needs it to be set to run tasks
export TMPDIR=/var/vcap/data/cloud_controller_ng/tmp
export C_INCLUDE_PATH=/var/vcap/packages/libpq/include:$C_INCLUDE_PATH
export LIBRARY_PATH=/var/vcap/packages/libpq/lib:$LIBRARY_PATH
export LANG=en_US.UTF-8
source /var/vcap/packages/common/utils.sh
case $1 in
start)
pid_guard $PIDFILE "Cloud controller ng"
mkdir -p $RUN_DIR
mkdir -p $LOG_DIR
mkdir -p $TMPDIR
chown vcap:vcap $RUN_DIR
chown vcap:vcap $LOG_DIR
chown vcap:vcap $TMPDIR
source $CC_JOB_DIR/bin/handle_nfs_or_local_blobstore.sh
# Configure the core file location
mkdir -p /var/vcap/sys/cores
chown vcap:vcap /var/vcap/sys/cores
echo /var/vcap/sys/cores/core-%e-%s-%p-%t > /proc/sys/kernel/core_pattern
ulimit -c unlimited
/var/vcap/packages/syslog_aggregator/setup_syslog_forwarder.sh $CONFIG_DIR
# Run the migrations only on the first CC launch
cd $CC_PACKAGE_DIR/cloud_controller_ng
chpst -u vcap:vcap bundle exec rake db:migrate
if [ $? != 0 ]; then
echo "Migrations failed"
exit 1
fi
# TODO: remove the -m when we have a stand alone utility for loading
# frameworks etc, and call those utilities here. See corresponding
# comments in cc runner.
exec chpst -u vcap:vcap $CC_PACKAGE_DIR/cloud_controller_ng/bin/cloud_controller -m \
-c $CLOUD_CONTROLLER_NG_CONFIG
;;
stop)
kill_and_wait $PIDFILE
;;
*)
echo "Usage: cloud_controller_ng_ctl {start|stop}"
;;
esac