#!/bin/bash
#DongJinLee, UoA - Aug-2010

hostName=$1	# e.g., ss or lp 
numHost=$2	# e.g., 2 (hosts)
numOSD=$3	# e.g., 3 (disks, osds)
mode=$4
runMode=$5 #special mode for restarting just the osd
#let numHost=$numHost-1

osdID=-1
function startOSD() {
	for (( j=1; j<=${numOSD}; j++ ))
	do
		id="${i}${j}"
		osdID=`expr $osdID + 1`
		echo "starting OSD node:$id, osdID:$osdID"
		ssh ${hostName}${i} cosd -i ${osdID} -c /etc/ceph/ceph.conf 
	done	
}

## first one is just restarting osd,
## second one is full restarting, (including mon and mds)

if [[ ${runMode} == "osd" ]]; then
	echo "restarting osds only..."
	#OSDs (1, 2, 3, ..., n)
	for (( i=1; i<=${numHost}; i++ )) 
	do
		startOSD $i  #no parallel
	done
	wait
	sleep 1	
else
	echo ">>> 1. copying ceph.conf to /etc/ceph/ceph.conf [quick-fix]"
	ssh ss3 mkdir -p /etc/ceph #> /dev/null 2>&1
	scp ceph.conf ss3:/etc/ceph/ceph.conf #> /dev/null 2>&1

	for (( i=1; i<=${numHost}; i++ ))
	do
		ssh ${hostName}${i} mkdir -p /etc/ceph #> /dev/null 2>&1
		scp ceph.conf ${hostName}${i}:/etc/ceph/ceph.conf #> /dev/null 2>&1
	done

	echo ">>> 2. mkcephfs..."
	ssh ss3 mkcephfs -k /etc/ceph/keyring -c /etc/ceph/ceph.conf --allhosts -v

	echo ">>> 3. starting Ceph File System..."
		ssh ss3 cmon -i 0 -c /etc/ceph/ceph.conf 
		ssh ss3 cmds -i 0 -c /etc/ceph/ceph.conf

	#OSDs (1, 2, 3, ..., n)
	for (( i=1; i<=${numHost}; i++ ))
	do
		startOSD $i  #start OSD one by one (no parallel)
	done
	wait
	sleep 1
fi




