summaryrefslogtreecommitdiff
path: root/src/manage.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/manage.sh')
-rwxr-xr-xsrc/manage.sh189
1 files changed, 0 insertions, 189 deletions
diff --git a/src/manage.sh b/src/manage.sh
deleted file mode 100755
index e44a52e..0000000
--- a/src/manage.sh
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/sh
-#
-# flufigut
-#
-# flufigut, the flumotion configuration utility, is a simple tool
-# that generates flumotion configuration files using pyhton jinja2
-# template engine and simplejson. flufigut generates planet.xml
-# and worker.xml files from configuration templates and an easy to
-# understand representation of the flow structure written in json.
-#
-#
-# Copyright (C) 2012-2014 Christian Pointner <equinox@spreadspace.org>
-# Michael Gebetsroither <michael@mgeb.org>
-#
-# This file is part of flufigut.
-#
-# flufigut is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 of the License, or
-# any later version.
-#
-# flufigut is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with flufigut. If not, see <http://www.gnu.org/licenses/>.
-#
-
-#
-# Initialization:
-# - generate ssh key:
-# $ ssh-keygen -f id_rsa
-# - configure ssh.config
-# - copy flufigut-client.sh to every machine and install it
-# $ sudo ./flufigut-client.sh install
-#
-
-OUTPUT_DIR="$1/flumotion"
-SSH_KEY="$1/id_rsa"
-SSH_CONFIG="$1/ssh.config"
-SSH_USER="flufigut"
-
-deploy_all() {
- for machine in "$OUTPUT_DIR"/*; do
- if [ -d "$machine" ]; then
- machine=`basename $machine`
- echo "copying files to $machine ... "
- tar -C "$OUTPUT_DIR" -czf "$OUTPUT_DIR/$machine.tar.gz" "$machine"
- scp -i "$SSH_KEY" -F "$SSH_CONFIG" "$OUTPUT_DIR/$machine.tar.gz" $SSH_USER@"$machine":/tmp
- ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" install "/tmp/$machine.tar.gz"
- fi
- done
-}
-
-clean_all() {
- for machine in "$OUTPUT_DIR"/*; do
- if [ -d "$machine" ]; then
- machine=`basename $machine`
- echo "removing files from $machine ... "
- generate_instance_list $machine
- ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" remove < "$OUTPUT_DIR/$machine.list"
- fi
- done
-}
-
-wipe_all() {
- for machine in `grep "^Host" $SSH_CONFIG | awk '{ print($2) }'`; do
- echo "wipeing files belonging to planet '$1' from $machine ... "
- ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" wipe "$1"
- 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)"
- generate_instance_list $machine
- ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" start < "$OUTPUT_DIR/$machine.list"
- break
- fi
- done
- for machine in "$OUTPUT_DIR"/*; do
- if [ -d "$machine" ] && [ ! -d "$machine/managers" ]; then
- machine=`basename $machine`
- echo " $machine (worker)"
- generate_instance_list $machine
- ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" start < "$OUTPUT_DIR/$machine.list"
- fi
- done
-}
-
-stop_all() {
- for machine in "$OUTPUT_DIR"/*; do
- if [ -d "$machine" ] && [ ! -d "$machine/managers" ]; then
- machine=`basename $machine`
- echo " $machine (worker)"
- generate_instance_list $machine
- ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" stop < "$OUTPUT_DIR/$machine.list"
- fi
- done
- for machine in "$OUTPUT_DIR"/*; do
- if [ -d "$machine" ] && [ -d "$machine/managers" ]; then
- machine=`basename $machine`
- echo " $machine (manager, worker)"
- generate_instance_list $machine
- ssh -i "$SSH_KEY" -F "$SSH_CONFIG" $SSH_USER@"$machine" stop < "$OUTPUT_DIR/$machine.list"
- break
- fi
- done
-}
-
-print_usage() {
- echo "flufigut management script by Christian Pointner <equinox@spreadspace.org>"
- echo ""
- echo "Usage $0 <planet> <command>"
- echo ""
- echo "Commands:"
- echo " deploy copies all configuration file to all servers and installs them"
- echo " clean remove all configuration file from all servers"
- echo " wipe purges all configuration files belonging the planet"
- echo " start starts all instances on all servers (manager starts first)"
- echo " stop stop all instances on all servers (manager stops last)"
- echo " restart same as stop, start"
- echo " help prints this"
-}
-
-if [ -z "$1" ]; then
- print_usage
- exit 1
-fi
-
-case "$2" in
- deploy)
- echo "Deploying configuration to all machines ..."
- deploy_all
- ;;
- clean)
- echo "cleaning/removing configuration from all machines ..."
- clean_all
- ;;
- wipe)
- echo "wipeing configuration for from all machines inside ssh-config ..."
- wipe_all "$1"
- ;;
- start)
- echo "Start manager and worker on all machines ..."
- start_all
- ;;
- stop)
- echo "Stop manager and worker on all machines ..."
- stop_all
- ;;
- restart)
- echo "Restart manager and worker on all machines ..."
- stop_all
- sleep 1
- start_all
- ;;
- help)
- print_usage
- ;;
- *)
- echo "Usage $0 <name> (deploy|clean|wipe|start|stop|restart|help)"
- exit 1
- ;;
-esac
-
-exit 0