From 48bae050d1dd2535492a21ea30f64ad0ebc3155b Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 13 Oct 2012 14:37:03 +0200 Subject: deployment and start, stop, restart work now --- src/flufigut-client.sh | 16 ++++++++++------ src/manage.sh | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/src/flufigut-client.sh b/src/flufigut-client.sh index 1fd6de1..aad3a06 100755 --- a/src/flufigut-client.sh +++ b/src/flufigut-client.sh @@ -90,16 +90,20 @@ case "$command" in ;; start) echo -n "starting ... " + while read line; do + type=`echo $line | awk '{ print $1 }'` + name=`echo $line | awk '{ print $2 }'` + start_instance $type $name + done echo "ok." ;; stop) echo -n "stopping ... " - echo "ok." - ;; - restart) - echo -n "stopping ... " - sleep 1 - echo -n "starting ..." + while read line; do + type=`echo $line | awk '{ print $1 }'` + name=`echo $line | awk '{ print $2 }'` + stop_instance $type $name + done echo "ok." ;; scp) diff --git a/src/manage.sh b/src/manage.sh index 9123cb8..d6fb813 100755 --- a/src/manage.sh +++ b/src/manage.sh @@ -57,12 +57,32 @@ deploy_all() { done } +generate_instance_list() { + machine=$1 + + rm -f "$OUTPUT_DIR/$machine.list" + touch "$OUTPUT_DIR/$machine.list" + if [ -d "$OUTPUT_DIR/$machine/managers" ]; then + for name in "$OUTPUT_DIR/$machine/managers/"*; do + name=`basename "$name"` + echo "manager $name" >> "$OUTPUT_DIR/$machine.list" + done + fi + for name in "$OUTPUT_DIR/$machine/workers/"*.xml; do + name=`basename "$name"` + name=${name%%.xml} + echo "worker $name" >> "$OUTPUT_DIR/$machine.list" + done +} + start_all() { for machine in "$OUTPUT_DIR"/*; do if [ -d "$machine" ] && [ -d "$machine/managers" ]; then machine=`basename $machine` echo " $machine (manager, worker)" - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" start + generate_instance_list $machine + ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" start < "$OUTPUT_DIR/$machine.list" + rm "$OUTPUT_DIR/$machine.list" break fi done @@ -70,7 +90,9 @@ start_all() { if [ -d "$machine" ] && [ ! -d "$machine/managers" ]; then machine=`basename $machine` echo " $machine (worker)" - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" start + generate_instance_list $machine + ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" start < "$OUTPUT_DIR/$machine.list" + rm "$OUTPUT_DIR/$machine.list" break fi done @@ -81,7 +103,9 @@ stop_all() { if [ -d "$machine" ] && [ ! -d "$machine/managers" ]; then machine=`basename $machine` echo " $machine (worker)" - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" stop + generate_instance_list $machine + ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" stop < "$OUTPUT_DIR/$machine.list" + rm "$OUTPUT_DIR/$machine.list" break fi done @@ -89,7 +113,9 @@ stop_all() { if [ -d "$machine" ] && [ -d "$machine/managers" ]; then machine=`basename $machine` echo " $machine (manager, worker)" - ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" stop + generate_instance_list $machine + ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" stop < "$OUTPUT_DIR/$machine.list" + rm "$OUTPUT_DIR/$machine.list" break fi done -- cgit v1.2.3