#!/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 4 multipath  -- antoine meme version 2.1
10/06/2010
www.blogvirtualisation.com

installer le vsphere cli perl

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 flonagios -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-mpath --server $HOSTADDRESS --username $USER --password $PASSWORD -l`
#MULTIPATHDEAD=`printf "$REQUETE" | grep -i dead`
#MULTIPATHSTANDBY=`printf "$REQUETE" | grep -i standby`
NBREPB_DEAD=`printf "$REQUETE" | grep -i dead | wc -l`
NBREPB_STANDBY=`printf "$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: $NBREPB_DEAD, standby: $NBREPB_STANDBY"
	exit 2
elif [ $NBREPB_STANDBY -ge 1 ] && [ $NBREPB_DEAD == 0 ]; then
        echo "nombre de chemin(s) standby: $NBREPB_STANDBY"
        exit 1

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

