Skip to content
This repository has been archived by the owner on Jan 21, 2022. It is now read-only.

Commit

Permalink
Add stop/status method in warden_service_ctl
Browse files Browse the repository at this point in the history
shortlog:

Eagle Chen (2):
      remove mysql connection pool if provision fails
      Merge "remove mysql connection pool if provision fails"

felixhoo (2):
      Call service stop script on container shutdown
      Merge "Call service stop script on container shutdown"

Change-Id: I3decb0a3d30d597f70b426c5a4af813a6d1dc78c
  • Loading branch information
felixhoo committed Nov 18, 2012
1 parent 53dcd43 commit aad14ec
Show file tree
Hide file tree
Showing 23 changed files with 157 additions and 111 deletions.
1 change: 1 addition & 0 deletions jobs/memcached_node_ng/templates/warden_ctl
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ case $1 in
install -m 0755 -t $ROOT_DIR/usr/share/memcached/bin $MEMCACHED_BIN_DIR/*
install -m 0755 -t $ROOT_DIR/usr/sbin $JOB_DIR/bin/pre_service_start.sh
install -m 0755 -t $ROOT_DIR/usr/bin $JOB_DIR/bin/warden_service_ctl
install -m 0755 -t $ROOT_DIR/usr/bin /var/vcap/packages/common/utils.sh

start_warden
;;
Expand Down
15 changes: 12 additions & 3 deletions jobs/memcached_node_ng/templates/warden_service_ctl
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
#!/bin/bash
LOGDIR=/store/log
INSDIR=/store/instance
PIDFILE=${INSDIR}/service.pid
STOP_TIMEOUT=<%= properties.memcached_node.instance_stop_timeout || 3 %>

source /usr/bin/utils.sh
exec 1>> ${LOGDIR}/${SCRIPT}.log
exec 2>> ${LOGDIR}/${SCRIPT}.err.log

case $1 in
start)
shift

args=$*
echo $$ >> $PIDFILE
exec /sbin/start-stop-daemon --start --quiet --chuid vcap --exec /usr/share/memcached/bin/memcached -- $args
;;

stop)
#TODO
kill_and_wait $PIDFILE $STOP_TIMEOUT 1
;;

status)
#TODO
[ -f $PIDFILE ] && [ -e /proc/`head -1 $PIDFILE` ]
;;

*)
Expand Down
1 change: 1 addition & 0 deletions jobs/mongodb_node_ng/templates/warden_ctl
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ case $1 in

# Copy mongodb binaries and configuration files to warden base file system
install -m 0755 -t $ROOT_DIR/usr/bin $JOB_DIR/bin/warden_service_ctl
install -m 0755 -t $ROOT_DIR/usr/bin /var/vcap/packages/common/utils.sh
install -m 0755 -t $ROOT_DIR/usr/share/mongodb/mongodb-1.8 $BIN_MONGO_1dot8_DIR/*
install -m 0755 -t $ROOT_DIR/usr/share/mongodb/mongodb-2.0 $BIN_MONGO_2dot0_DIR/*
install -m 0755 -t $ROOT_DIR/usr/share/mongodb/mongodb_proxy $BIN_MONGO_PROXY_DIR/*
Expand Down
18 changes: 14 additions & 4 deletions jobs/mongodb_node_ng/templates/warden_service_ctl
Original file line number Diff line number Diff line change
@@ -1,22 +1,32 @@
#!/bin/bash
LOGDIR=/store/log
INSDIR=/store/instance
PIDFILE=${INSDIR}/service.pid
STOP_TIMEOUT=<%= properties.mongodb_node.instance_stop_timeout || 3 %>

source /usr/bin/utils.sh
exec 1>> ${LOGDIR}/${SCRIPT}.log
exec 2>> ${LOGDIR}/${SCRIPT}.err.log

case $1 in
start)
shift

touch /store/log/mongodb.log
mkdir -p /store/instance/data
touch ${LOGDIR}/mongodb.log
mkdir -p ${INSDIR}/data
version=$1
shift
args=$*
echo $$ >> $PIDFILE
exec /usr/share/mongodb/mongodb-$version/mongod $args --config /etc/mongodb.conf
;;

stop)
#TODO
kill_and_wait $PIDFILE $STOP_TIMEOUT 1
;;

status)
#TODO
[ -f $PIDFILE ] && [ -e /proc/`head -1 $PIDFILE` ]
;;

*)
Expand Down
6 changes: 3 additions & 3 deletions jobs/mysql_node_ng/spec
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ templates:
mysql_worker_ctl: bin/mysql_worker_ctl
mysql_migration_util.erb: bin/mysql_migration_util

mysql_ctl.erb: bin/mysql_ctl
my.bootstrap.erb: bin/my.bootstrap
my.shutdown.erb: bin/my.shutdown
create_mysql_tmp_dir.erb: bin/create_mysql_tmp_dir
my.cnf.erb: config/my.cnf
mysql_ctl.erb: bin/mysql_ctl

# mysql 5.5 related files
my55.bootstrap.erb: bin/my55.bootstrap
my55.shutdown.erb: bin/my55.shutdown
my55.cnf.erb: config/my55.cnf
mysql55_ctl.erb: bin/mysql55_ctl

create_mysql_tmp_dir.erb: bin/create_mysql_tmp_dir
mysql_node.yml.erb: config/mysql_node.yml
mysql_worker.yml.erb: config/mysql_worker.yml
my.cnf.erb: config/my.cnf
mysql_init.erb: config/mysql_init
mysql_backup.yml.erb: config/mysql_backup.yml
mysql_backup.cron.erb: config/mysql_backup.cron
Expand Down
1 change: 0 additions & 1 deletion jobs/mysql_node_ng/templates/my.cnf.erb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ log-error = <%= use_warden ? '/store/log/mysqld.err.log' : '/var/vcap/sys/log/my
collation_server = utf8_unicode_ci
character_set_server = utf8
user = vcap
pid-file = <%= "#{base_folder}/mysqld.pid" %>
socket = <%= "#{base_folder}/mysqld.sock" %>
port = 3306
basedir = /var/vcap/packages/mysql
Expand Down
11 changes: 10 additions & 1 deletion jobs/mysql_node_ng/templates/my.shutdown.erb
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
<%
service = "mysql"
plan_enabled = properties.service_plans && properties.service_plans.send(service.to_sym)
plan = properties.plan || "free"
plan_conf = plan_enabled && properties.service_plans.send(service.to_sym).send(plan.to_sym).configuration
warden = plan_conf.warden
use_warden = warden && warden.enable
base_folder = use_warden ? '/store/instance' : '/var/vcap/sys/run/mysqld'
%>
export LD_LIBRARY_PATH=/var/vcap/packages/mysql/lib/mysql

password=<%= properties.mysql_node.password %>

/var/vcap/packages/mysql/bin/mysqladmin --user=root --password="${password}" --socket=/var/vcap/sys/run/mysqld/mysqld.sock shutdown
/var/vcap/packages/mysql/bin/mysqladmin --user=root --password="${password}" --socket=<%= "#{base_folder}/mysqld.sock" %> shutdown
1 change: 0 additions & 1 deletion jobs/mysql_node_ng/templates/my55.cnf.erb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ log-error = <%= use_warden ? '/store/log/mysqld55.err.log' : '/var/vcap/sys/log/
collation_server = utf8_unicode_ci
character_set_server = utf8
user = vcap
pid-file = <%= "#{base_folder}/mysqld55.pid" %>
socket = <%= "#{base_folder}/mysqld55.sock" %>
port = 3307
basedir = /var/vcap/packages/mysql55
Expand Down
11 changes: 10 additions & 1 deletion jobs/mysql_node_ng/templates/my55.shutdown.erb
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
<%
service = "mysql"
plan_enabled = properties.service_plans && properties.service_plans.send(service.to_sym)
plan = properties.plan || "free"
plan_conf = plan_enabled && properties.service_plans.send(service.to_sym).send(plan.to_sym).configuration
warden = plan_conf.warden
use_warden = warden && warden.enable
base_folder = use_warden ? '/store/instance' : '/var/vcap/sys/run/mysqld'
%>
export LD_LIBRARY_PATH=/var/vcap/packages/mysql55/lib/mysql

password=<%= properties.mysql_node.password %>

/var/vcap/packages/mysql55/bin/mysqladmin --user=root --password="${password}" --socket=/var/vcap/sys/run/mysqld/mysqld55.sock shutdown
/var/vcap/packages/mysql55/bin/mysqladmin --user=root --password="${password}" --socket=<%= "#{base_folder}/mysqld55.sock" %> shutdown
4 changes: 4 additions & 0 deletions jobs/mysql_node_ng/templates/warden_ctl
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ case $1 in

rsync -arl $JOB_DIR/bin/warden_service_ctl $ROOT_DIR/usr/bin/warden_service_ctl
chmod 0755 $ROOT_DIR/usr/bin/warden_service_ctl
install -m 0755 -t $ROOT_DIR/usr/bin /var/vcap/packages/common/utils.sh

install -m 0755 -d $ROOT_DIR/$JOB_DIR/config
rsync -arl $JOB_DIR/config/warden_mysql_init $ROOT_DIR/$JOB_DIR/config/mysql_init
Expand All @@ -87,6 +88,9 @@ case $1 in
rsync -arl $JOB_DIR/config/my55.cnf $ROOT_DIR/$JOB_DIR/config/my55.cnf
chmod 0644 $ROOT_DIR/$JOB_DIR/config/my.cnf
chmod 0644 $ROOT_DIR/$JOB_DIR/config/my55.cnf
install -m 0755 -d $ROOT_DIR/$JOB_DIR/bin
install -m 0755 -t $ROOT_DIR/$JOB_DIR/bin $JOB_DIR/bin/my.shutdown
install -m 0755 -t $ROOT_DIR/$JOB_DIR/bin $JOB_DIR/bin/my55.shutdown

install -m 0755 -t $ROOT_DIR/usr/sbin $JOB_DIR/bin/pre_service_start.sh

Expand Down
4 changes: 2 additions & 2 deletions jobs/mysql_node_ng/templates/warden_mysql_init.erb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
CREATE USER 'root'@'%' IDENTIFIED BY '<%= properties.mysql_node.password %>';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
GRANT ALL ON *.* to 'root'@'%' IDENTIFIED BY '<%= properties.mysql_node.password %>' WITH GRANT OPTION;
GRANT ALL ON *.* to 'root'@'localhost' IDENTIFIED BY '<%= properties.mysql_node.password %>' WITH GRANT OPTION;

FLUSH PRIVILEGES;

Expand Down
23 changes: 18 additions & 5 deletions jobs/mysql_node_ng/templates/warden_service_ctl
Original file line number Diff line number Diff line change
@@ -1,23 +1,36 @@
#!/bin/bash
LOGDIR=/store/log
INSDIR=/store/instance
PIDFILE=${INSDIR}/service.pid
STOP_TIMEOUT=<%= properties.mysql_node.instance_stop_timeout || 3 %>

source /usr/bin/utils.sh
exec 1>> ${LOGDIR}/${SCRIPT}.log
exec 2>> ${LOGDIR}/${SCRIPT}.err.log

case $1 in
start)
shift
version=$1

mkdir -p /store/instance/mysql_tmp
if test ! -d /store/instance/data/mysql; then
rsync -arl /var/vcap/packages/mysql${version}/initdb${version}/* /store/instance/data
mkdir -p ${INSDIR}/mysql_tmp
if test ! -d ${INSDIR}/data/mysql; then
rsync -arl /var/vcap/packages/mysql${version}/initdb${version}/* ${INSDIR}/data
fi

/var/vcap/packages/mysql${version}/libexec/mysql_warden.server start /var/vcap/jobs/mysql_node_ng/config/my${version}.cnf
head -1 ${INSDIR}/mysqld${version}.pid > $PIDFILE
;;

stop)
#TODO
shift
version=$1
/var/vcap/packages/mysql${version}/libexec/mysql_warden.server stop /var/vcap/jobs/mysql_node_ng/config/my${version}.cnf $STOP_TIMEOUT
rm -f $PIDFILE
;;

status)
#TODO
[ -f $PIDFILE ] && [ -e /proc/`head -1 $PIDFILE` ]
;;

*)
Expand Down
9 changes: 5 additions & 4 deletions jobs/postgresql_node_ng/templates/warden_ctl
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ case $1 in
chmod -R 1777 $TMPDB_DIR
if test ! -d $TMPDB_DIR/initdb/base
then
rm -rf $TEMPDB_DIR/initdb
rm -rf $TMPDB_DIR/initdb
su - vcap -c "LD_LIBRARY_PATH=$ROOT_DIR/$PG_DIR/lib:$LD_LIBRARY_PATH $ROOT_DIR/$PG_DIR/bin/initdb -E utf8 -D $TMPDB_DIR/initdb"
fi
if test ! -d $TMPDB_DIR/initdb/base
Expand All @@ -60,10 +60,11 @@ case $1 in
rsync -arl $TMPDB_DIR/initdb $ROOT_DIR/$PG_DIR
mkdir -p $ROOT_DIR/$PG_DIR/initdb/pg_log
chmod -R 777 $ROOT_DIR/$PG_DIR/initdb
install -m 0755 -t $ROOT_DIR/usr/sbin $JOB_DIR/bin/pre_service_start.sh
rsync -arl $JOB_DIR/bin/warden_service_ctl $ROOT_DIR/usr/bin/warden_service_ctl
chmod 0755 $ROOT_DIR/usr/bin/warden_service_ctl
done
install -m 0755 -t $ROOT_DIR/usr/sbin $JOB_DIR/bin/pre_service_start.sh
rsync -arl $JOB_DIR/bin/warden_service_ctl $ROOT_DIR/usr/bin/warden_service_ctl
chmod 0755 $ROOT_DIR/usr/bin/warden_service_ctl
install -m 0755 -t $ROOT_DIR/usr/bin /var/vcap/packages/common/utils.sh
echo "Starting warden."

start_warden
Expand Down
19 changes: 13 additions & 6 deletions jobs/postgresql_node_ng/templates/warden_service_ctl
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,29 @@ plan_enabled = properties.service_plans && properties.service_plans.send(service
plan = properties.plan || "free"
plan_conf = plan_enabled && properties.service_plans.send(service.to_sym).send(plan.to_sym).configuration
%>
LOG_DIR=/store/log
DATA_DIR=/store/instance
PIDFILE=${DATA_DIR}/service.pid
STOP_TIMEOUT=<%= properties.postgresql_node.instance_stop_timeout || 3 %>

source /usr/bin/utils.sh
exec 1>> ${LOG_DIR}/${SCRIPT}.log
exec 2>> ${LOG_DIR}/${SCRIPT}.err.log

version=$2
case "$version" in
"9.0")
PACKAGE_DIR=/var/vcap/packages/postgresql
DATA_DIR=/var/vcap/store/postgresql
PORT=5432

;;
"9.1")
PACKAGE_DIR=/var/vcap/packages/postgresql91
DATA_DIR=/var/vcap/store/postgresql91
PORT=5433

;;
esac

DATA_DIR=/store/instance
LOG_DIR=/store/log
FIRST_TIME=0

case $1 in
Expand Down Expand Up @@ -96,6 +101,7 @@ case $1 in

if [ $? == 0 ]; then
echo "PostgreSQL `cat $DATA_DIR/PG_VERSION` started successfully" >> $LOG_DIR/postgresql_ctl.log
head -1 $DATA_DIR/postmaster.pid > $PIDFILE
if [ $FIRST_TIME -eq 1 ]; then
# Setup contrib packages
for sqlf in citext.sql fuzzystrmatch.sql isn.sql ltree.sql pageinspect.sql pg_buffercache.sql pgcrypto.sql pg_freespacemap.sql sslinfo.sql tablefunc.sql uuid-ossp.sql
Expand All @@ -112,11 +118,12 @@ case $1 in
;;

stop)
#TODO
LD_LIBRARY_PATH=$PACKAGE_DIR/lib:$LD_LIBRARY_PATH $PACKAGE_DIR/bin/pg_ctl stop -m fast -w -D $DATA_DIR
wait_pidfile $PIDFILE 0 $STOP_TIMEOUT
;;

status)
#TODO
[ -f $PIDFILE ] && [ -e /proc/`head -1 $PIDFILE` ]
;;

*)
Expand Down
1 change: 1 addition & 0 deletions jobs/rabbit_node_ng/templates/warden_ctl
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ case $1 in
# Copy rabbitmq binaries and configuration files to warden base file system
install -m 0755 -t $ROOT_DIR/usr/sbin $JOB_DIR/bin/pre_service_start.sh
install -m 0755 -t $ROOT_DIR/usr/bin $JOB_DIR/bin/warden_service_ctl
install -m 0755 -t $ROOT_DIR/usr/bin /var/vcap/packages/common/utils.sh
for i in "var/vcap/packages" "var/vcap/data/packages"
do
mkdir -p $ROOT_DIR/$i
Expand Down
30 changes: 20 additions & 10 deletions jobs/rabbit_node_ng/templates/warden_service_ctl
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
#!/bin/bash
LOGDIR=/store/log
INSDIR=/store/instance
PIDFILE=${INSDIR}/service.pid
STOP_TIMEOUT=<%= properties.rabbit_node.instance_stop_timeout || 3 %>

source /usr/bin/utils.sh
exec 1>> ${LOGDIR}/${SCRIPT}.log
exec 2>> ${LOGDIR}/${SCRIPT}.err.log

case $1 in
start)
shift
Expand All @@ -7,28 +16,29 @@ case $1 in
shift
export ERLANG_HOME=/var/vcap/packages/erlang
export PATH=/var/vcap/packages/erlang/bin:$PATH
export HOME=/store/instance
export HOME=${INSDIR}
export RABBITMQ_NODENAME="$1@localhost"
export RABBITMQ_NODE_PORT=10001
export RABBITMQ_BASE=/store/instance
export RABBITMQ_LOG_BASE=/store/log
export RABBITMQ_MNESIA_DIR=/store/instance/mnesia
export RABBITMQ_PLUGINS_EXPAND_DIR=/store/instance/plugins
export RABBITMQ_CONFIG_FILE=/store/instance/config/rabbitmq
export RABBITMQ_ENABLED_PLUGINS_FILE=/store/instance/config/enabled_plugins
export RABBITMQ_BASE=${INSDIR}
export RABBITMQ_LOG_BASE=${LOGDIR}
export RABBITMQ_MNESIA_DIR=${INSDIR}/mnesia
export RABBITMQ_PLUGINS_EXPAND_DIR=${INSDIR}/plugins
export RABBITMQ_CONFIG_FILE=${INSDIR}/config/rabbitmq
export RABBITMQ_ENABLED_PLUGINS_FILE=${INSDIR}/config/enabled_plugins
export RABBITMQ_SERVER_START_ARGS="-smp disable"
export RABBITMQ_CONSOLE_LOG=reuse
export ERL_CRASH_DUMP="/dev/null"
export ERL_CRASH_DUMP_SECONDS="1"
exec /sbin/start-stop-daemon --start --quiet --chuid vcap --exec /var/vcap/packages/rabbitmq-${version}/sbin/rabbitmq-server >/store/log/rabbitmq_stdout.log 2>/store/log/rabbitmq_stderr.log
echo $$ >> $PIDFILE
exec /sbin/start-stop-daemon --start --quiet --chuid vcap --exec /var/vcap/packages/rabbitmq-${version}/sbin/rabbitmq-server >${LOGDIR}/rabbitmq_stdout.log 2>${LOGDIR}/rabbitmq_stderr.log
;;

stop)
#TODO
kill_and_wait $PIDFILE $STOP_TIMEOUT 1
;;

status)
#TODO
[ -f $PIDFILE ] && [ -e /proc/`head -1 $PIDFILE` ]
;;

*)
Expand Down
1 change: 1 addition & 0 deletions jobs/redis_node_ng/templates/warden_ctl
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ case $1 in

# Copy redis binaries and configuration files to warden base file system
install -m 0755 -t $ROOT_DIR/usr/bin $JOB_DIR/bin/warden_service_ctl
install -m 0755 -t $ROOT_DIR/usr/bin /var/vcap/packages/common/utils.sh
install -m 0755 -t $ROOT_DIR/usr/share/redis/redis-2.2 $REDIS22_BIN_DIR/*
install -m 0755 -t $ROOT_DIR/usr/share/redis/redis-2.4 $REDIS24_BIN_DIR/*
install -m 0755 -t $ROOT_DIR/usr/share/redis/redis-2.6 $REDIS26_BIN_DIR/*
Expand Down
Loading

0 comments on commit aad14ec

Please sign in to comment.