#!/bin/bash

APPNAME=$(basename $0)

#PREREQUISITE
binaries=$(cat<<all_required_binaries
  
all_required_binaries)

for required_binary in $binaries; do
  which $required_binary > /dev/null
  if [ "$?" != '0' ];then
    printf "UNKNOWN: $APPNAME: Packet '$required_binary' manquant dans la variable '$PATH'\n"
    exit 3
  fi
done

#HELP:
usage () {
cat<<EOU
Usage of $APPNAME
---------------------------------------------------------------------

ESX 3 multipath  -- antoine meme version 1.1
09/06/2010
www.blogvirtualisation.com

installer le vsphere cli

Options:
  -S
     facultatif : path vers les binaires du vsphere cli ( faire find / -name esxcfg-mpath)
  -H
     ip ou hostname esx
  -u
     user esx
  -p
     password esx
  -h
     Afficher ce message d'aide.

Examples:
  $APPNAME -H 192.168.1.1 -u nagios -p nagios
---------------------------------------------------------------------
EOU
exit 3
}

#VALUE:


#ARG:

while getopts "S:H:u:p:h" option
do
        case $option in
		S ) PATHSDK=$OPTARG ;;
                H ) HOSTADDRESS=$OPTARG ;;
                u ) USER=$OPTARG ;;
                p ) PASSWORD=$OPTARG ;;
                h ) usage ;;
        esac
done

# VERIF ARG:
if [ -z $USER ] ||[ -z $HOSTADDRESS ] || [ -z $PASSWORD ] ;then
        echo -e "Error: argument manquant. taper -h pour voir l'aide"
        exit 3
fi

#VALUE:
REQUETE=`${PATHSDK}esxcfg-mpath35 --server $HOSTADDRESS --username $USER --password $PASSWORD -l`
MULTIPATHDEAD=`echo -e "$REQUETE" | grep -i dead |awk '{print $4", "}' | tr "\n" " "`
MULTIPATHSTANDBY=`echo -e "$REQUETE" | grep -i standby | awk '{print $4", "}' | tr "\n" " "`
NBREPB_DEAD=`echo -e "$REQUETE" | grep -i dead | wc -l`
NBREPB_STANDBY=`echo -e "$REQUETE" | grep -i standby | wc -l`
REQUETETEST=`echo -e "$REQUETE" | wc -l`
#MAIN:
if [ $NBREPB_DEAD == 0 ] && [ $NBREPB_STANDBY == 0 ] && [ $REQUETETEST -gt 1 ]; then
	echo "multipath OK"
	exit 0
elif [ $NBREPB_DEAD -ge 1 ]; then
	echo "nombre de chemin(s) dead: <b>$NBREPB_DEAD</b>, standby: <b>$NBREPB_STANDBY</b>"
	echo "chemin(s) dead: $MULTIPATHDEAD chemin(s) standby: $MULTIPATHSTANDBY"
	exit 2
elif [ $NBREPB_STANDBY -ge 1 ] && [ $NBREPB_DEAD == 0 ]; then
        echo "nombre de chemin(s) standby: <b>$NBREPB_STANDBY</b>, dead: <b>0</b>"
	echo "chemin(s) standby: $MULTIPATHSTANDBY"
        exit 1

else
	echo "error no reponse or bad username / password"
 
	exit 3   
fi

