function download_file
{
    srcurl=$1;
    destfile=$2;
    overwrite=$3;

    if [ "$overwrite" = false ] && [ -e $destfile ]; then
        return;
    fi

    wget -O $destfile -q $srcurl;
}

function untar_file
{
    zippedfile=$1;
    unzipdir=$2;

    if [ -e $zippedfile ]; then
        tar -xf $zippedfile -C $unzipdir;
    fi
}

function test_is_headnode
{
    shorthostname=`hostname -s`
    if [[  $shorthostname == headnode* || $shorthostname == hn* ]]; then
        echo 1;
    else
        echo 0;
    fi
}

function test_is_datanode
{
    shorthostname=`hostname -s`
    if [[ $shorthostname == workernode* || $shorthostname == wn* ]]; then
        echo 1;
    else
        echo 0;
    fi
}

function test_is_zookeepernode
{
    shorthostname=`hostname -s`
    if [[ $shorthostname == zookeepernode* || $shorthostname == zk* ]]; then
        echo 1;
    else
        echo 0;
    fi
}

function test_is_first_datanode
{
    shorthostname=`hostname -s`
    firstdatanode=$(cat /etc/hosts | awk '{print $3}' | grep "^wn" | sort | awk 'NR==1' )
    if [[ $shorthostname == $firstdatanode ]]; then
        echo 1;
    else
        echo 0;
    fi
}

#following functions are used to determine headnodes. 
#Returns fully qualified headnode names separated by comma by inspecting /etc/hosts
#Returns empty string in case of errors.
function get_headnodes
{
    hnfqdn1=$(cat /etc/hosts | awk '{print $2}' | grep "^hn" | sort | awk 'NR==1')
    hnfqdn2=$(cat /etc/hosts | awk '{print $2}' | grep "^hn" | sort | awk 'NR==2')

    echo "$hnfqdn1,$hnfqdn2"
}

function get_primary_headnode
{
        headnodes=`get_headnodes`
        echo "`(echo $headnodes | cut -d ',' -f 1)`"
}

function get_secondary_headnode
{
        headnodes=`get_headnodes`
        echo "`(echo $headnodes | cut -d ',' -f 2)`"
}

function get_primary_headnode_number
{
        echo "0"
}

function get_secondary_headnode_number
{
        echo "1"
}
