Il giorno Ven 27 Mag 2011 15:33:24 CET, Dejan Muhamedagic ha scritto:
[...]
Yes. It's because users cannot read comments that easily, they
usually look at the logs. If at all.
Cheers,

New (and hopefully last) version attached.

Bye,

--
RaSca
Mia Mamma Usa Linux: Niente รจ impossibile da capire, se lo spieghi bene!
ra...@miamammausalinux.org
http://www.miamammausalinux.org
#!/bin/sh
#
# External STONITH module for Hetzner.
#
# Copyright (c) 2011 MMUL S.a.S. - Raoul Scarazzini <ra...@mmul.it>
#
# 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., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
#

# Read parameters from config file, format is based upon the hetzner OCF 
resource agent
# developed by Kumina: 
http://blog.kumina.nl/2011/02/hetzner-failover-ip-ocf-script/
conf_file="/etc/hetzner.cfg"
user=`sed -n 's/^user.*=\ *//p' /etc/hetzner.cfg`
pass=`sed -n 's/^pass.*=\ *//p' /etc/hetzner.cfg`
hetzner_server="https://robot-ws.your-server.de";

check_http_response() {
     # If the response is 200 then return 0
     if [ $1 = 200 ]
      then
       return 0
      else
       # If the response is not 200 then display a description of the problem 
and return 1
       case $1 in
        400) ha_log.sh err  "INVALID_INPUT - Invalid input parameters"
               ;;
        404) ha_log.sh err  "SERVER_NOT_FOUND - Server with ip $remote_ip not 
found"
               ;;
        409) ha_log.sh err  "RESET_MANUAL_ACTIVE - There is already a running 
manual reset"
               ;;
        500) ha_log.sh err "RESET_FAILED - Resetting failed due to an internal 
error"
               ;;
       esac
       return 1
     fi
}

case $1 in
gethosts)
        echo $hostname
        exit 0
        ;;
on)
        # Can't really be implemented because Hetzner's webservice cannot power 
on a system
        ha_log.sh err "Power on is not available since Hetzner's webservice 
can't do this operation."
        exit 1
        ;;
off)
        # Can't really be implemented because Hetzner's webservice cannot power 
on a system
        ha_log.sh err "Power off is not available since Hetzner's webservice 
can't do this operation."
        exit 1
        ;;
reset)
        # Launching the reset action via webservice
        check_http_response $(curl --silent -o /dev/null -w '%{http_code}' -u 
$user:$pass $hetzner_server/reset/$remote_ip -d type=hw)
        exit $?
        ;;
status)
        # Check if we can contact the webservice
        check_http_response "$(curl --silent -o /dev/null -w '%{http_code}' -u 
$user:$pass $hetzner_server/server/$remote_ip)"
        exit $?
        ;;
getconfignames)
        echo "hostname"
        echo "remote_ip"
        exit 0
        ;;
getinfo-devid)
        echo "Hetzner STONITH device"
        exit 0
        ;;
getinfo-devname)
        echo "Hetzner STONITH external device"
        exit 0
        ;;
getinfo-devdescr)
        echo "Hetzner host reset"
        echo "Manages the remote webservice for reset a remote server."
        exit 0
        ;;
getinfo-devurl)
        echo "http://wiki.hetzner.de/index.php/Robot_Webservice_en";
        exit 0
        ;;
getinfo-xml)
        cat << HETZNERXML
<parameters>
<parameter name="hostname" unique="1">
<content type="string" />
<shortdesc lang="en">
Hostname
</shortdesc>
<longdesc lang="en">
The name of the host to be managed by this STONITH device.
</longdesc>
</parameter>

<parameter name="remote_ip" unique="1" required="1">
<content type="string" />
<shortdesc lang="en">
Remote IP
</shortdesc>
<longdesc lang="en">
The address of the remote IP that manages this server.
</longdesc>
</parameter>
</parameters>
HETZNERXML
        exit 0
        ;;
*)
        ha_log.sh err "Don't know what to do for '$remote_ip'"
        exit 1
        ;;
esac
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to