#!/bin/bash
# Mount QA script.
# By: Michael Groves - michael.r.groves@census.gov

#variables
PID=$$

############################################################
#functions

go_additional_checks () {
#cluster service mount
F=`cat /tmp/vfstab.txt | wc -l`
M=`cat /tmp/vmount.txt | wc -l`
[ ! $M -gt $F ] && return 1
[ ! -e /usr/sbin/clustat ] && return 1
/usr/sbin/clustat | grep service | grep -q `/bin/hostname`
[ ! "$?" == "0" ] && return 1
[ ! -e /etc/cluster/cluster.conf ] && return 1
/usr/bin/comm -13 /tmp/vfstab.txt /tmp/vmount.txt > /tmp/mount.diff
for I in `cat /tmp/mount.diff`; do
	cat /etc/cluster/cluster.conf | sed -n "/resources/,/\/resources/p" \
		| grep "<fs device" | grep "mountpoint=" | grep -q "=\"$I\""
	[ ! "$?" == "0" ] && return 1
done
exit 0
}

############################################################

#code
vFSTAB=`cat /etc/fstab | grep -v '^#\|rpc_pipefs' \
	| grep 'ext[234]\|gfs\|xfs\|nfs' | awk '{ print $2 }' | sort -u`
cat /etc/fstab | grep -v '^#\|rpc_pipefs' | grep 'ext[234]\|gfs\|xfs\|nfs' \
	| awk '{ print $2 }' | sort -u > /tmp/vfstab.txt
vMOUNT=`/bin/mount | grep -v 'pipefs\|^none\|^nfsd\ ' \
	| grep 'ext[234]\|gfs\|xfs\|nfs' | awk '{print $3}' | sort -u`
/bin/mount | grep -v 'pipefs\|^none\|^nfsd\ ' | grep 'ext[234]\|gfs\|xfs\|nfs' \
	| awk '{print $3}' | sort -u > /tmp/vmount.txt
if [ ! $"$vFSTAB" == "$vMOUNT" ]; then
	go_additional_checks
	exit 1
fi
