#!/bin/bash

HA_HEALTH_DIR=/usr/share/ha-health-check

source $HA_HEALTH_DIR/cluster-check
source $HA_HEALTH_DIR/cluster-log
source $HA_HEALTH_DIR/env-check
source $HA_HEALTH_DIR/fence-check
source $HA_HEALTH_DIR/split-brain


function check_cluster()
{
echo "================ 集群状态检测 =========================="
    check_cluster_service
    if [ $? -ne 0 ];then
	return 0
    fi
    check_nodes
    check_resources
    check_fence_state
echo ""
}

function check_env()
{
echo "================ 集群环境检测 =========================="
    check_hostname
    check_NTP_service
    check_firewall
echo ""
}

function check_split_brain()
{
    split_brain
}

function check_fence()
{

    check_start_commd $@

    check_pcs
    check_node

    echo "===================================="
    echo "欢迎使用统信高可用集群fence检测工具" 
    echo "===================================="

    fence_check
    fence_start

}

function usage(){
    cat << EOF
用法: ha-health-check	[-e] [-c] [-h]
			[--split-brain] [--fence-node NODE]
			[--export-log]

检测集群健康状态

可用参数:
    -e, --env-check         
	检测集群环境

    -c, --cluster-check     
	检测集群状态

    -h, --help              
	展示用法并退出

    --split-brain		  
	通过关闭udp端口模拟集群发生脑裂时的情况

  --fence-node <NODE>	  
	检测集群fence功能

  --export-log	[-D directory] [options]
	导出集群日志, "-D"参数用于指定导出目录.
	如果不指定目录和选项，就默认把日志导出
	至/data/uha目录下
	导出日志可用的选项如下:
	-a, --all           获取所有集群组件日志
	--corosync          获取corosync日志
    	--pacemaker         获取pacemaker日志
    	--pcsd              获取pcsd日志
	
EOF
}

case $1 in

-e | --env-check)	check_env;;
-c | --cluster-check)	check_cluster;;
-h | --help)		usage;;

--split-brain)		check_split_brain;;
--fence-node) 		check_fence $@;;
--export-log)		export_log $@;;

*)			usage;;

esac
