#!/bin/bash # info: delete remote dns domains # options: [HOST] # The function deletes remote dns domains. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition host=$1 # Includes source $VESTA/conf/vesta.conf source $VESTA/func/main.sh source $VESTA/func/remote.sh #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then echo "Error: dns-cluster.conf doesn't exist" log_event "$E_NOTEXIST $EVENT" exit $E_NOTEXIST fi number_of_proc=$(ps auxf | grep -v grep | grep $VESTA/bin/$SCRIPT | wc -l) if [ "$number_of_proc" -gt 2 ]; then echo "Error: another sync process already exists" log_event "$E_EXISTS $EVENT" exit $E_EXISTS fi #----------------------------------------------------------# # Action # #----------------------------------------------------------# old_ifs="$IFS" IFS=$'\n' if [ -z $host ]; then hosts=$(cat $VESTA/conf/dns-cluster.conf) else hosts=$(grep "HOST='$host'" $VESTA/conf/dns-cluster.conf) fi # Starting cluster loop for cluster_str in $hosts; do # Get host values eval $cluster_str # Check connection type if [ -z "TYPE" ]; then TYPE='api' fi # Print hostname if [ ! -z "$verbose" ]; then echo "HOSTNAME: $HOSTNAME" echo "TYPE: $TYPE" fi # Switch on connection type case $TYPE in ssh) send_cmd="send_ssh_cmd" ;; *) send_cmd="send_api_cmd" ;; esac # Check host connection $send_cmd v-list-sys-config if [ $? -ne 0 ]; then echo "Error: $TYPE connection to $HOST failed" log_event "$E_CONNECT $EVENT" exit $E_CONNECT fi # Check recipient dns user if [ -z "$DNS_USER" ]; then DNS_USER='dns-cluster' fi if [ ! -z "$verbose" ]; then echo "DNS_USER: $DNS_USER" fi $send_cmd v-list-user $DNS_USER if [ $? -ne 0 ]; then echo "Error: dns user $DNS_USER doesn't exist" log_event "$E_NOTEXIST $EVENT" exit $E_NOTEXIST fi # Clean source records $send_cmd v-delete-dns-domains-src $DNS_USER $HOSTNAME 'no' if [ $? -ne 0 ]; then echo "Error: $TYPE connection to $HOST failed (cleanup)" log_event "$E_CONNECT $EVENT" exit $E_CONNECT fi # Rebuild dns zones $send_cmd v-rebuild-dns-domains $DNS_USER 'scheduled' if [ $? -ne 0 ]; then echo "Error: $TYPE connection to $HOST failed (rebuild)" log_event "$E_CONNECT $EVENT" exit $E_CONNECT fi done #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# exit