improved dns nameservers section

This commit is contained in:
Serghey Rodin 2012-07-24 22:04:27 +03:00
commit fe71ef2f08
19 changed files with 138 additions and 90 deletions

View file

@ -1,6 +1,6 @@
#!/bin/bash
# info: add dns domain
# options: user domain ip [template] [exp] [soa] [ttl]
# options: user domain ip [template] [ns1] [ns2] [ns3] [ns4]
#
# The function adds DNS zone with records defined in the template. If the exp
# argument isn't stated, the expiration date value will be set to next year.
@ -21,10 +21,11 @@ domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
domain_idn=$(idn -t --quiet -a "$domain")
ip=$3
template=$4
next_year=$(date +%F -d "+ 1 year")
exp=${5-$next_year}
soa=$6
ttl=${7-14400}
ns1=$5
ns2=$6
ns3=$7
ns4=$8
restart=$9
# Includes
source $VESTA/conf/vesta.conf
@ -36,8 +37,8 @@ source $VESTA/func/domain.sh
# Verifications #
#----------------------------------------------------------#
check_args '3' "$#" 'user domain ip [template] [exp] [soa] [ttl]'
validate_format 'user' 'domain' 'ip' 'exp' 'ttl'
check_args '3' "$#" 'user domain ip [template] [ns1] [ns2] [ns3] [ns4]'
validate_format 'user' 'domain' 'ip'
is_system_enabled "$DNS_SYSTEM"
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
@ -51,23 +52,42 @@ else
is_dns_template_valid
fi
if [ ! -z "$ns1" ]; then
ns1=$(echo $5 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns1'
fi
if [ ! -z "$ns2" ]; then
ns2=$(echo $6 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns2'
fi
if [ ! -z "$ns3" ]; then
ns3=$(echo $7 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns3'
fi
if [ ! -z "$ns4" ]; then
ns4=$(echo $8 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns4'
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Defining variables
i=1
ns=$(get_user_value '$NS')
for nameserver in ${ns//,/ };do
eval ns$i=$nameserver
(( ++i))
done
# Define soa
if [ -z "$soa" ]; then
soa="$ns1"
if [ -z $ns2 ]; then
i=1
ns=$(get_user_value '$NS')
for nameserver in ${ns//,/ };do
eval ns$i=$nameserver
(( ++i))
done
fi
soa="$ns1"
exp=$(date +%F -d "+ 1 year")
ttl=14400
# Adding zone to dns dir
cat $DNSTPL/$template.tpl |\
@ -78,10 +98,6 @@ cat $DNSTPL/$template.tpl |\
-e "s/%ns2%/$ns2/g" \
-e "s/%ns3%/$ns3/g" \
-e "s/%ns4%/$ns4/g" \
-e "s/%ns5%/$ns5/g" \
-e "s/%ns6%/$ns6/g" \
-e "s/%ns7%/$ns7/g" \
-e "s/%ns8%/$ns8/g" \
-e "s/%time%/$TIME/g" \
-e "s/%date%/$DATE/g" > $USER_DATA/dns/$domain.conf
chmod 660 $USER_DATA/dns/$domain.conf
@ -116,7 +132,9 @@ increase_user_value "$user" '$U_DNS_DOMAINS'
increase_user_value "$user" '$U_DNS_RECORDS' "$records"
# Restart named
$BIN/v_restart_dns "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_dns "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -18,10 +18,10 @@ domain=$(idn -t --quiet -u "$2" )
domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
domain_idn=$(idn -t --quiet -a "$domain")
record=$(idn -t --quiet -u "$3" )
record=$(echo $record | tr '[:upper:]' '[:lower:]')
record=$(echo "$record" | tr '[:upper:]' '[:lower:]')
rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]')
dvalue=$(idn -t --quiet -u "$5" )
dvalue=$(echo $dvalue | tr '[:upper:]' '[:lower:]')
dvalue=$(echo "$dvalue" | tr '[:upper:]' '[:lower:]')
priority=$6
id=$7

View file

@ -42,7 +42,6 @@ is_object_unsuspended 'dns' 'DOMAIN' "$domain"
update_object_value 'dns' 'DOMAIN' "$domain" '$EXP' "$exp"
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#

View file

@ -15,6 +15,7 @@ user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
soa=$(echo $3 | sed -e 's/\.*$//g' -e 's/^\.*//g')
restart=$4
# Includes
source $VESTA/conf/vesta.conf
@ -51,7 +52,9 @@ update_domain_zone
#----------------------------------------------------------#
# Restart named
$BIN/v_restart_dns "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_dns "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -63,10 +63,6 @@ cat $DNSTPL/$template.tpl |\
-e "s/%ns2%/$ns2/g" \
-e "s/%ns3%/$ns3/g" \
-e "s/%ns4%/$ns4/g" \
-e "s/%ns5%/$ns5/g" \
-e "s/%ns6%/$ns6/g" \
-e "s/%ns7%/$ns7/g" \
-e "s/%ns8%/$ns8/g" \
-e "s/%time%/$TIME/g" \
-e "s/%date%/$DATE/g" > $USER_DATA/dns/$domain.conf

View file

@ -14,6 +14,7 @@ user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
ttl=$3
restart=$4
# Includes
source $VESTA/conf/vesta.conf
@ -50,7 +51,9 @@ update_domain_zone
#----------------------------------------------------------#
# Restart named
$BIN/v_restart_dns "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_dns "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -1,6 +1,6 @@
#!/bin/bash
# info: change user nameservers
# options: user ns1 ns2 [ns3] [ns4] [ns5] [ns6] [ns7] [ns8]
# options: user ns1 ns2 [ns3] [ns4]
#
# The function for changing default nameservers for speciefic user.
@ -15,10 +15,6 @@ ns1=$(echo $2 | sed -e 's/\.*$//g' -e 's/^\.*//g')
ns2=$(echo $3 | sed -e 's/\.*$//g' -e 's/^\.*//g')
ns3=$4
ns4=$5
ns5=$6
ns6=$7
ns7=$8
ns8=$9
# Includes
source $VESTA/conf/vesta.conf
@ -30,7 +26,7 @@ source $VESTA/func/main.sh
#----------------------------------------------------------#
# Checking args
check_args '3' "$#" 'user ns1 ns2 [ns3] [ns4] [ns5] [ns6] [ns7] [ns8]'
check_args '3' "$#" 'user ns1 ns2 [ns3] [ns4]'
# Checking argument format
validate_format 'user' 'ns1' 'ns2'
@ -42,22 +38,6 @@ if [ ! -z "$ns4" ]; then
ns4=$(echo $5 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns4'
fi
if [ ! -z "$ns5" ]; then
ns5=$(echo $6 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns5'
fi
if [ ! -z "$ns6" ]; then
ns6=$(echo $7 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns6'
fi
if [ ! -z "$ns7" ]; then
ns7=$(echo $8 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns7'
fi
if [ ! -z "$ns8" ]; then
ns8=$(echo $9 | sed -e 's/\.*$//g' -e 's/^\.*//g')
validate_format 'ns8'
fi
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
@ -68,7 +48,7 @@ is_object_unsuspended 'user' 'USER' "$user"
#----------------------------------------------------------#
# Merging values
ns="$ns1,$ns2,$ns3,$ns4,$ns5,$ns6,$ns7,$ns8"
ns="$ns1,$ns2,$ns3,$ns4"
ns=$(echo "$ns"|sed -e "s/,,//g" -e "s/,$//")
# Changing ns values

View file

@ -42,7 +42,4 @@ echo "$value"
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$EVENT"
exit

View file

@ -71,10 +71,6 @@ for domain in $(search_objects 'dns' 'DOMAIN' "*" 'DOMAIN'); do
-e "s/%ns2%/$ns2/g" \
-e "s/%ns3%/$ns3/g" \
-e "s/%ns4%/$ns4/g" \
-e "s/%ns5%/$ns5/g" \
-e "s/%ns6%/$ns6/g" \
-e "s/%ns7%/$ns7/g" \
-e "s/%ns8%/$ns8/g" \
-e "s/%time%/$TIME/g" \
-e "s/%date%/$DATE/g" > $USER_DATA/dns/$domain.conf
fi