#!/bin/bash

IS_QLOUD=0
if [ -f /etc/qloud/meta.json ];then
    IS_QLOUD=1
fi

POSTFIX_INCOMMING_GOURPS=(
    mail_postback
    mail_postbackcorp
    mail_postyaback
)

POSTFIX_OUTGOING_GOURPS=(
    mail_forward
    mail_forward_white
    mail_forward_black
    mail_forward_services
    mail_forward_corp
)

POSTFIX_GROUPS=("${POSTFIX_INCOMMING_GOURPS[@]}" "${POSTFIX_OUTGOING_GOURPS[@]}")

NWSMTP_GROUPS=(
    mxback
    mxback-newserver
    mxbackcorp
    mxcorp
    mxfront
    smtp
    smtpcorp
    yaback
)

ln -sf /usr/lib/yamail-mx-monitor/tools/mailq.py                 /usr/bin/mailq.py
ln -sf /usr/lib/yamail-mx-monitor/tools/tskvtail                 /usr/bin/tskvtail
ln -sf /usr/lib/yamail-mx-monitor/tools/postfix_domains.py       /usr/bin/postfix_domains.py
ln -sf /usr/lib/yamail-mx-monitor/monrun/postfix_hold.py         /usr/bin/postfix_hold.py
ln -sf /usr/lib/yamail-mx-monitor/monrun/postfix_unhold.py       /usr/bin/postfix_unhold.py


if [ $IS_QLOUD -eq 0 ];then
    GROUP=$(curl -s https://c.yandex-team.ru/api/hosts2groups/$HOSTNAME | grep -vE "all|ubuntu")
else
    GROUP=$(qloud_var QLOUD_COMPONENT)
    APPLICATION=$(qloud_var QLOUD_APPLICATION)
fi


# Juggler postinstall:
if [ $IS_QLOUD -eq 0 ];then
    # Access rulles for monitor paths:
    chown -R monitor.monitor /var/tmp/mtail/
    chown -R monitor.monitor /var/log/monrun/
    
    # Cron excerption for restarts monitoring:
    mkdir -p /etc/monitoring/
    grep -q CRON /etc/monitoring/grep_excludes 2>/dev/null || (echo CRON >> /etc/monitoring/grep_excludes)
    
    # Symlink for mx-common checks:
    ln -svf /usr/lib/yamail-mx-monitor/config/mx-common.monrun /etc/monrun/conf.d/mx-common.conf
    
    # Update certs monitoring hash:
    /usr/lib/yamail-mx-monitor/tools/cert_consistency.sh
fi


echo -e "\nConfiguring juggler checks for $GROUP:"
ln -svf /usr/lib/yamail-mx-monitor/config/"$GROUP".monrun  /etc/monrun/conf.d/"$GROUP".conf
regenerate-monrun-tasks


# Graphite/YASM/postfix_hold postinstall:
function yasm() {
    ln -sfv /usr/share/monitor/yasm/available/$1 /usr/share/monitor/yasm/enabled/
}

mkdir -p /usr/share/graphite-client/
mkdir -p /usr/share/monitor/yasm/enabled/

echo -e "\nConfiguring Graphite and YASM:"

# POSTFIX:
for postfix_group in ${POSTFIX_GROUPS[*]}
do
    if [ "$postfix_group" == "$GROUP" ];then
        yasm postfix.py
    fi
done

if [ "$GROUP" == "mail_forward" ];then
    ln -svf /usr/lib/yamail-mx-monitor/config/postfix_dsn_cleaner.cron /etc/cron.d/postfix_dsn_cleaner
fi

if [ "$GROUP" == "mail_forward_services" ];then
    ln -svf /usr/lib/yamail-mx-monitor/config/postfix_dsn_cleaner_pre_dsn.cron /etc/cron.d/postfix_dsn_cleaner_pre_dsn
fi

for postfix_group in ${POSTFIX_INCOMMING_GOURPS[*]}
do
    if [ "$postfix_group" == "$GROUP" ];then
        ln -svf /usr/lib/yamail-mx-monitor/config/postfix_hold_incomming.cron /etc/cron.d/postfix_hold
    fi
done

for postfix_group in ${POSTFIX_OUTGOING_GOURPS[*]}
do
    if [ "$postfix_group" == "$GROUP" ];then
        ln -svf /usr/lib/yamail-mx-monitor/config/postfix_hold_outgoing.cron /etc/cron.d/postfix_hold
    fi
done


# NWSMTP:
for nw_group in ${NWSMTP_GROUPS[*]}
do
    if [ "$nw_group" == "$GROUP" ];then
        yasm nwsmtp.py
    fi
done


#MDBSAVE:
if [ "$GROUP" == "save" ];then
    yasm mdbsave.py
fi


#NOTSOLITESRV:
if [ "$GROUP" == "notsolitesrv" ];then
    yasm notsolitesrv.py
    if [ "$APPLICATION" == "notsolitesrv-corp" ];then
        ln -svf /usr/lib/yamail-mx-monitor/config/"$APPLICATION".monrun  /etc/monrun/conf.d/"$GROUP".conf
    fi
fi
