#!/bin/bash

source /etc/profile
source /service/sbin/setup
source /service/sbin/pophosts

if [ $1 == "init" ]; then 
    create_fuse_dev

    cat /service/keys/id_rsa.pub >> /root/.ssh/authorized_keys
    /usr/sbin/sshd -D
elif [ $1 == "start" ]; then 
    pophosts

    # Record the services running on this node.
    echo $2 >> /tmp/hadoop_services.log

    if [ $2 == "namenode" ]; then
	su ferry -c '/service/packages/hadoop/bin/hdfs --config /service/conf namenode -format HADOOP_CLUSTER'
	su ferry -c '/service/packages/hadoop/sbin/hadoop-daemon.sh --config /service/conf --script hdfs start namenode'
    elif [ $2 == "datanode" ]; then
	su ferry -c '/service/packages/hadoop/sbin/hadoop-daemon.sh --config /service/conf --script hdfs start datanode'
    elif [ $2 == "yarnmaster" ]; then	
	su ferry -c '/service/packages/hadoop/sbin/yarn-daemon.sh --config /service/conf start resourcemanager'
    elif [ $2 == "yarnslave" ]; then	
	su ferry -c '/service/packages/hadoop/sbin/yarn-daemon.sh --config /service/conf start nodemanager'
    elif [ $2 == "gluster" ]; then 
	python /service/scripts/mounthelper.py mount $3	
	chown -R ferry:docker /service/data
    fi
elif [ $1 == "restart" ]; then 
    pophosts
    if [ $2 == "namenode" ]; then
	su ferry -c '/service/packages/hadoop/sbin/hadoop-daemon.sh --config /service/conf --script hdfs start namenode'
    elif [ $2 == "datanode" ]; then
	su ferry -c '/service/packages/hadoop/sbin/hadoop-daemon.sh --config /service/conf --script hdfs start datanode'
    elif [ $2 == "yarnmaster" ]; then	
	su ferry -c '/service/packages/hadoop/sbin/yarn-daemon.sh --config /service/conf start resourcemanager'
    elif [ $2 == "yarnslave" ]; then	
	su ferry -c '/service/packages/hadoop/sbin/yarn-daemon.sh --config /service/conf start nodemanager'
    elif [ $2 == "gluster" ]; then 
	python /service/scripts/mounthelper.py mount $3	
	chown -R ferry:docker /service/data
    fi
elif [ $1 == "stop" ]; then 
    input=/tmp/hadoop_services.log
    while read line
    do
	if [ "$line" == "namenode" ]; then
	    su ferry -c '/service/packages/hadoop/sbin/hadoop-daemon.sh --config /service/conf --script hdfs stop namenode'
	elif [ "$line" == "datanode" ]; then
	    su ferry -c '/service/packages/hadoop/sbin/hadoop-daemon.sh --config /service/conf --script hdfs stop datanode'
	elif [ "$line" == "yarnmaster" ]; then	
	    su ferry -c '/service/packages/hadoop/sbin/yarn-daemon.sh --config /service/conf stop resourcemanager'
	elif [ "$line" == "yarnslave" ]; then	
	    su ferry -c '/service/packages/hadoop/sbin/yarn-daemon.sh --config /service/conf stop nodemanager'
	elif [ "$line" == "gluster" ]; then 
	    python /service/scripts/mounthelper.py umount
	fi
    done < "$input"


    # Stop the ssh daemon. This should automatically stop this container. 
    pkill -f sshd
fi
