#!/bin/bash # info: change dns domain record # options: USER DOMAIN ID VALUE [PRIORITY] [RESTART] # # The function for changing DNS record. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition user=$1 domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") id=$3 dvalue=$(idn -t --quiet -u "$4" ) dvalue=$(echo $dvalue | tr '[:upper:]' '[:lower:]') priority=$5 restart=$6 # Includes source $VESTA/conf/vesta.conf source $VESTA/func/main.sh source $VESTA/func/domain.sh #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '4' "$#" 'USER DOMAIN ID VALUE [PRIORITY] [RESTART]' validate_format 'user' 'domain' 'id' 'dvalue' is_system_enabled "$DNS_SYSTEM" is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_valid 'dns' 'DOMAIN' "$domain" is_object_unsuspended 'dns' 'DOMAIN' "$domain" is_object_valid "dns/$domain" 'ID' "$id" #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Deleting old record line=$(grep "ID='$id'" $USER_DATA/dns/$domain.conf) eval $line if [ "$TYPE" != 'MX' ] && [ "$TYPE" != 'SRV' ]; then priority='' fi sed -i "/^ID='$id'/d" $USER_DATA/dns/$domain.conf # Adding record dns_rec="ID='$id' RECORD='$RECORD' TYPE='$TYPE' PRIORITY='$priority'" dns_rec="$dns_rec VALUE='$dvalue' SUSPENDED='no' TIME='$TIME' DATE='$DATE'" echo "$dns_rec" >> $USER_DATA/dns/$domain.conf # Sorting records sort_dns_records # Updating zone update_domain_zone # dns-cluster if [ ! -z "$DNS_CLUSTER" ]; then cmd="v-add-remote-dns-domain $user $domain" echo "$cmd" >> $VESTA/data/queue/dns-cluster.pipe fi #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Restart named if [ "$restart" != 'no' ]; then $BIN/v-restart-dns fi # Logging log_history "changed dns record on $domain to $dvalue" log_event "$OK" "$EVENT" exit