#!/bin/bash

if [ ! "$1" = "manage" ] && [ ! "$1" = "unmanage" ] && [ ! "$1" = "deactivate" ] && [ ! "$1" = "activate" ]; then
    echo "Option inconnue"
    echo "Doit être :"
    echo "    manage : remise en monitoring des ressources"
    echo "    unmanage : ne monitore plus les ressources locales"
    echo "    activate : met le noeud en état 'standby'"
    echo "    deactivate : met le noeud en état 'online'"
    exit 1
fi

local_node=$(CreoleGet nom_machine)
if [ "$1" == "manage" ] || [ "$1" == "unmanage" ]; then
    [ "$1" == "manage" ] && rsc_status="NOT running"
    [ "$1" == "unmanage" ] && rsc_status="running on: ${local_node}$"

    crm status >> /dev/null 2>&1
    if [ $? -eq 0 ]; then
        [ "$1" == "manage" ] && sleep 2
        for rsc_grp in VIPCluster VIPSlave gw_pingd_clone; do
            result=$(crm resource show $rsc_grp 2>&1)
            echo $result|grep -s -q -E "$rsc_status"
            if [ $? -eq 0 ]; then
                [ "$1" == "manage" ] && crm resource cleanup $rsc_grp
                crm resource $1 $rsc_grp
            fi
        done
        crm node list | grep -q "$localnode:"
        [ $? -eq 0 ] && echo "y" | crm node clearstate $local_node
        # Wait after resources and node acions
        sleep 5
    fi
    exit 0
fi

if [ "$1" == "activate" ] || [ "$1" == "deactivate" ]; then
    [ "$1" == "activate" ] && node_action="standby"
    [ "$1" == "deactivate" ] && node_action="online"
    crm status >> /dev/null 2>&1
    if [ $? -eq 0 ]; then
        if [ "$1" == "deactivate" ]; then
            sleep 3
            for rsc_grp in VIPCluster VIPSlave gw_pingd_clone; do
                crm resource show $rsc_grp >> /dev/null 2>&1
                [ $? -eq 0 ] && crm resource cleanup $rsc_grp
            done
            crm node list | grep -q "$localnode:"
            [ $? -eq 0 ] && echo "y" | crm node clearstate $local_node
        fi
        crm node list | grep -q "$localnode:"
        [ $? -eq 0 ] && crm node $node_action $local_node
        # Wait after cleanup and node online
        [ "$1" == "deactivate" ] && sleep 5
    fi
    exit 0
fi
