#!/bin/bash
#
##########################################################################
#
prim="lv9042"
secn="lv9041"
sid="lnx"
SID="LNX"
ino="42"
primSite="ROT"
secnSite="WALLDORF"
primList="lv9049,lv9051,lv9084:role=standby,lv9086:role=standby"
secnList="lv9048,lv9050,lv9083:role=standby,lv9085:role=standby"
TAG="fh_reset_SR"
HANA_INST_DIR="/hana/shared/SPS09_rev95/SAP_HANA_DATABASE"
#
##########################################################################
#

#
# unmanage
function unmanage()
{
    local res=$1
    logger -s -i -t $TAG "unmanage $res"
    crm resource unmanage $res
}


#
# manage
function manage()
{
    local res=$1
    logger -s -i -t $TAG "manage $res"
    crm resource manage $res
}

#
# cleanup
function cleanup()
{
    local res=$1
    logger -s -i -t $TAG "cleanup $res"
    crm resource cleanup $res
}


#
# Stop secondary system
#
function stop_secondary()
{
    logger -s -i -t $TAG "stop_secondary"
    COMMAND="hostname; sapcontrol -nr $ino -function StopSystem; sapcontrol -nr $ino -function WaitforStopped 300 10; hostname"
    ssh root@$secn "su - ${sid}adm -c '$COMMAND'"
}

#
# Stop primary system
#
function stop_primary()
{
    logger -s -i -t $TAG "stop_primary"
    COMMAND="hostname; sapcontrol -nr $ino -function StopSystem; sapcontrol -nr $ino -function WaitforStopped 300 10; hostname"
    ssh root@$prim "su - ${sid}adm -c '$COMMAND'"
}

###
# Uninstall primary
function uninstall_primary()
{ 
    logger -s -i -t $TAG "uninstall_primary"
    COMMAND="$HANA_INST_DIR/hdbuninst --sid=LNX"
    ssh root@$prim "$COMMAND"
}

###
# Uninstall secondary
function uninstall_secondary()
{
    logger -s -i -t $TAG "uninstall_secondary"
    COMMAND="$HANA_INST_DIR/hdbuninst --sid=LNX"
    ssh root@$secn "$COMMAND"
}

###
# Install primary
function install_primary()
{
    logger -s -i -t $TAG "install_primary"
    COMMAND="cat fhSAPHanaPasswords | $HANA_INST_DIR/hdbinst --addhosts=\"$primList\" --sid=${SID} --number=${ino} --batch --read_password_from_stdin=xml"
    ssh root@$prim "$COMMAND"
}

###
# Install secondary
function install_secondary()
{
    logger -s -i -t $TAG "install_secondary"
    COMMAND="cat fhSAPHanaPasswords | $HANA_INST_DIR/hdbinst --addhosts=\"$secnList\" --sid=${SID} --number=${ino} --batch --read_password_from_stdin=xml"
    ssh root@$secn "$COMMAND"
}

####
# BACKUP PRIMARY SYSTEM
function backup_primary()
{
    logger -s -i -t $TAG "backup_primary"
    # TODO: need to start that via ssh
    COMMAND="/usr/sap/$SID/HDB${ino}/exe/hdbsql -u system -p manager -i ${ino} \"backup data using file ('lala')\""
    ssh root@$prim "$COMMAND"
}

####
# ENABLE AT PRIMARY
function enable_primary()
{ 
    logger -s -i -t $TAG "enable_primary"
    COMMAND="hostname; hdbnsutil -sr_enable --name=${primSite}"
    ssh root@$prim "su - ${sid}adm -c '$COMMAND'"
}

####
# REGISTER SECONDARY
function register_secondary()
{
    logger -s -i -t $TAG "register_secondary"
    COMMAND="hostname; hdbnsutil -sr_register --remoteHost=${prim} --remoteInstance=${ino} --mode=sync --name=${secnSite} --force_full_replica"
    ssh root@$secn "su - ${sid}adm -c '$COMMAND'"
}

function cleanup_primary()
{
    logger -s -i -t $TAG "cleanup_primary"
    COMMAND="hostname; hdbnsutil -sr_cleanup --force; hostname"
    ssh root@$secn "su - ${sid}adm -c '$COMMAND'"
}

####
# START PRIMARY
function start_primary()
{ 
    logger -s -i -t $TAG "start_primary"
    COMMAND="hostname; hostname; sapcontrol -nr $ino -function StartSystem; sapcontrol -nr $ino -function WaitforStarted 300 10; hostname"
    ssh root@$prim "su - ${sid}adm -c '$COMMAND'"
}

####
# START SECONDARY
function start_secondary()
{ 
    logger -s -i -t $TAG "start_secondary"
    COMMAND="hostname; hostname; sapcontrol -nr $ino -function StartSystem; sapcontrol -nr $ino -function WaitforStarted 300 10; hostname"
    ssh root@$secn "su - ${sid}adm -c '$COMMAND'"
}

function manually_check_nameserver_ini()
{
    logger -s -i -t $TAG "manually_check_nameserver_ini"
    ok=0
    COMMAND="hostname; cat /hana/shared/$SID/global/hdb/custom/config/nameserver.ini"
    ssh root@$secn "su - ${sid}adm -c '$COMMAND'"
    echo "is this nameserver.ini correct?"
    read yn
    case "$yn" in
      "y" | "yes" | "j" | "ja" ) ok=1;;
    esac
 
    if [ $ok -eq 0 ]; then
       echo "EXIT"
       exit 1
    fi
}

unmanage msl_SAPHana_${SID}_HDB${ino}
unmanage cln_SAPHanaTopology_${SID}_HDB${ino}

stop_secondary
stop_primary
cleanup_primary
start_primary
echo "CHECK AND PRESS ENTER"; read
#backup_primary
enable_primary
echo "CHECK AND PRESS ENTER"; read
manually_check_nameserver_ini
register_secondary
echo "CHECK AND PRESS ENTER"; read
start_secondary

echo "CHECK AND PRESS ENTER"; read
cleanup cln_SAPHanaTopology_LNX_HDB42
manage cln_SAPHanaTopology_LNX_HDB42
cleanup msl_SAPHana_LNX_HDB42
sleep 60
manage msl_SAPHana_LNX_HDB42

####
#
# SSH-COPY-ID für alle cluster knoten und user sidadm
