#!/bin/rc

#for each registry in /tmp/grid/registries:

#FIRST check if its alive
#IF its alive, harvest the info
#IF its dead, mark it for fixing

for (i in /tmp/grid/registries/*){
	if (! ~ $i '/tmp/grid/registries/*' && ! ~ $i /tmp/grid/registries/tcp*){
		REGSTATUS=0
		REGNAME=`{echo $i |awk -F/ '{print $5}'}
		touch /tmp/grid/work/regtest$REGNAME
		ls /g/r/$REGNAME >>/tmp/grid/work/regtest$REGNAME &
		sleep 6
		REGSTATUS=`{cat /tmp/grid/work/regtest$REGNAME}
#		echo regstatus is $REGSTATUS hopefully r
		if (! ~ $REGSTATUS '/g/r/'$REGNAME'/r'){
			echo `{date} registry $REGNAME nonresponsive, moved to mia >>/tmp/grid/log/log
			echo registry $REGNAME not responding, moved to mia
			mv /tmp/grid/registries/$REGNAME /tmp/grid/miareg/$REGNAME
		}
		if (~ $REGSTATUS ??*){
			REGCHECK = `{ls /g/r/$REGNAME/r}
#			echo $REGCHECK hopefully something
			if (~ $REGCHECK ?*){
				cat /g/r/$REGNAME/r/index >/tmp/grid/info/reg$REGNAME
				cat /tmp/grid/info/reg$REGNAME >>/tmp/grid/info/newregbucket
			}
			if (! ~ $REGCHECK ?*){
				echo `{date} registry $REGNAME nonresponsive, moved to mia >>/tmp/grid/log/log
				echo registry $REGNAME not responding, moved to mia
				mv /tmp/grid/registries/$REGNAME /tmp/grid/miareg/$REGNAME
			}
		}
	}
}

if (test -e /tmp/grid/work/regtest*) rm /tmp/grid/work/regtest*

if (! test -e /tmp/grid/info/newregbucket){
	echo registry update failed to find new information, please run regrepair
	echo `{date} registry update failed, regrepair needed >>/tmp/grid/log/log
	exit
}

cat /tmp/grid/info/regbucket >>/tmp/grid/info/oldregbucket
mv /tmp/grid/info/newregbucket /tmp/grid/info/regbucket
echo `{date} regupdate completed >>/tmp/grid/log/log
