diff options
Diffstat (limited to '')
-rwxr-xr-x | libexec/fence/fence | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/libexec/fence/fence b/libexec/fence/fence new file mode 100755 index 0000000..9ab9f41 --- /dev/null +++ b/libexec/fence/fence @@ -0,0 +1,110 @@ +#!/bin/sh -x + +# External FENCE module for container-tools a open-infrastrucutre-container-tools managed +# systemd nspawn container environment. +# +# Copyright (C) 2021 David Kunz <david.kunz@bfh.ch> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of version 2 of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Further, this software is distributed without any warranty that it is +# free of the rightful claim of any third person regarding infringement +# or the like. Any license provided herein, whether implied or +# otherwise, applies only to this software file. Patent licenses, if +# any, provided herein do not apply to combinations of this program with +# other software, or any other product whatsoever. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +set -e + +PROJECT="open-infrastructure" +PROGRAM="fence" +#COMMAND="$(basename ${0})" + +# Parameter +PARAMETERS="${1}" + +#for SCRIPT in /usr/share/compute-tools/fence/ssh-trigger.d/*.sh +#do +# . "${SCRIPT}" +#done + +Parameters () +{ + OPTIONS_ALL="" + + GETOPT_LONGOPTIONS="name:,start,stop,status,exist," + GETOPT_OPTIONS="n:," + + PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${COMMAND} --options ${GETOPT_OPTIONS} --shell sh -- ${@})" + + if [ "${?}" != "0" ] + then + echo "'${COMMAND}': getopt exit" >&2 + exit 1 + fi + + eval set -- "${PARAMETERS}" + + while true + do + case "${1}" in + -n|--name) + NAME="${2}" + shift 2 + ;; + + --start) + COMMAND="start" + shift 1 + ;; + + --stop) + COMMAND="stop" + shift 1 + ;; + + --status) + COMMAND="status" + shift 1 + ;; + + --exist) + COMMAND="exist" + shift 1 + ;; + + --) + shift 1 + break + ;; + + *) + echo "'${COMMAND}': getopt error" >&2 + exit 1 + ;; + esac + done +} + +Usage () +{ + echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME" >&2 + echo + echo "See ${COMMAND}(1), ${PROGRAM}(1) and ${PROJECT}(7) for more information." + + exit 1 +} + +Parameters "${@}" + +"/usr/share/compute-tools/${PROGRAM}/functions/${COMMAND}" "${NAME}" |