From a6d3644bc872634075e0694e89bb93d4e8cb9015 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Mon, 1 Oct 2012 07:49:37 +0200 Subject: [PATCH] vcluster-setup: Watcher, init script - Generate a wrapper script for ganeti-watcher - Provide command line option to specify init script Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Bernardo Dal Seno <bdalseno@google.com> --- tools/vcluster-setup.in | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/tools/vcluster-setup.in b/tools/vcluster-setup.in index 576a24dfc..edaeb2d10 100644 --- a/tools/vcluster-setup.in +++ b/tools/vcluster-setup.in @@ -23,11 +23,12 @@ shopt -s extglob readonly self=$(readlink -f $0) readonly ensure_dirs=@PKGLIBDIR@/ensure-dirs -readonly action_shortcuts=( start stop restart status ) +readonly action_shortcuts=( start stop restart status watcher ) readonly default_nodecount=5 readonly default_instcount=10 readonly default_netprefix=192.0.2 readonly default_netdev=eth0 +readonly default_initscript=@SYSCONFDIR@/init.d/ganeti readonly cluster_name=cluster # IP address space: @@ -42,7 +43,7 @@ readonly max_instance_count=$((255 - first_inst_ipaddr_octet)) usage() { echo "Usage: $0 [-E] [-N] [-c <number>] [-i <number>] [-p <prefix>]"\ - '[-n <netdev>] <directory>' + '[-n <netdev>] [-I <path>] <directory>' echo echo 'Options:' echo " -c Number of virtual nodes (defaults to $default_nodecount)" @@ -50,6 +51,7 @@ usage() { echo " -p IPv4 network prefix (defaults to $default_netprefix)" echo ' -n Network device for virtual IP addresses (defaults to'\ "$default_netdev)" + echo " -I Path to init script (defaults to $default_initscript)" echo ' -E Do not modify /etc/hosts' echo ' -N Do not configure networking' } @@ -59,11 +61,12 @@ nodecount=$default_nodecount instcount=$default_instcount netprefix=$default_netprefix netdev=$default_netdev +initscript=$default_initscript etchosts=1 networking=1 # Parse options -while getopts :hENc:p:n:i: opt; do +while getopts :hENc:p:n:i:I: opt; do case "$opt" in h) usage @@ -103,6 +106,13 @@ while getopts :hENc:p:n:i: opt; do exit 1 fi ;; + I) + initscript="$OPTARG" + if [[ ! -x $initscript ]]; then + echo "Init script '$initscript' is not executable" >&2 + exit 1 + fi + ;; E) etchosts= ;; @@ -252,8 +262,13 @@ setup_scripts() { echo '#!/bin/bash' for ((i=0; i < nodecount; ++i)); do local name=$(node_hostname $i) - echo "echo 'Action \"$action\" for virtual node \"$name\" ...'" - echo "$name/cmd /etc/init.d/ganeti $action" + if [[ $action = watcher ]]; then + echo "echo 'Running watcher for virtual node \"$name\" ..." + echo "$name/cmd ganeti-watcher \"\$@\"" + else + echo "echo 'Action \"$action\" for virtual node \"$name\" ...'" + echo "$name/cmd $initscript $action \"\$@\"" + fi done } > $rootdir/$action-all chmod +x $rootdir/$action-all -- GitLab