1
0
Fork 0
mirror of https://github.com/myvesta/vesta synced 2025-08-11 09:07:43 -07:00

DNS Cluster Serial fix

This commit is contained in:
Serghey Rodin 2015-10-15 15:03:23 +03:00
commit 264b851d1a
22 changed files with 79 additions and 40 deletions

View file

@ -81,6 +81,7 @@ if [ -z $ns2 ]; then
fi
soa="$ns1"
exp=$(date +%F -d "+ 1 year")
serial=$(date +'%Y%m%d01')
ttl=14400
# Reading template
@ -111,8 +112,8 @@ records="$(wc -l $USER_DATA/dns/$domain.conf |cut -f 1 -d ' ')"
# Adding dns.conf record
dns_rec="DOMAIN='$domain' IP='$ip' TPL='$template' TTL='$ttl' EXP='$exp'"
dns_rec="$dns_rec SOA='$soa' RECORDS='$records' SUSPENDED='no' TIME='$TIME'"
dns_rec="$dns_rec DATE='$DATE'"
dns_rec="$dns_rec SOA='$soa' SERIAL='$serial' SRC='' RECORDS='$records'"
dns_rec="$dns_rec SUSPENDED='no' TIME='$TIME' DATE='$DATE'"
echo "$dns_rec" >> $USER_DATA/dns.conf
chmod 660 $USER_DATA/dns.conf

View file

@ -82,6 +82,7 @@ sort_dns_records
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -111,7 +111,7 @@ for cluster_str in $search_str; do
fi
# Rebuild dns zone
$send_cmd v-rebuild-dns-domain $DNS_USER $domain 'scheduled'
$send_cmd v-rebuild-dns-domain $DNS_USER $domain 'scheduled' 'no'
if [ $? -ne 0 ]; then
echo "Error: $TYPE connection to $HOST failed"
log_event "$E_CONNECT $EVENT"

View file

@ -80,13 +80,16 @@ for cluster_str in $(grep "SUSPENDED='no'" $VESTA/conf/dns-cluster.conf); do
DNS_CLUSTER_IGNORE='dns-cluster'
fi
# Sync SOA
$send_cmd v-insert-dns-domain $DNS_USER "$str" $HOSTNAME 'domain' 'no'
# Sync record
str=$(grep "ID='$id'" $USER_DATA/dns/$domain.conf)
str=$(echo "$str" | sed 's/"/\\"/g')
$send_cmd v-insert-dns-record $DNS_USER $domain "$str" 'no'
if [ $? -eq 0 ]; then
# Rebuild dns zone
$send_cmd v-rebuild-dns-domain $DNS_USER $domain 'scheduled'
$send_cmd v-rebuild-dns-domain $DNS_USER $domain 'scheduled' 'no'
if [ $? -ne 0 ]; then
echo "Error: $TYPE connection to $HOST failed (rebuild)"
log_event "$E_CONNECT $EVENT"

View file

@ -51,6 +51,7 @@ sed -i "s/$old/$ip/g" $USER_DATA/dns/$domain.conf
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi
@ -59,7 +60,7 @@ if [ ! -z "$DNS_CLUSTER" ]; then
# Check for first sync
dlock=$(grep "domain $user $domain" $VESTA/data/queue/dns-cluster.pipe)
if [ -z "$dlock" ]; then
cmd="$BIN/v-add-remote-dns-domain $user $domain domain"
cmd="$BIN/v-add-remote-dns-domain $user $domain domain yes"
echo "$cmd" >> $VESTA/data/queue/dns-cluster.pipe
fi
fi

View file

@ -45,6 +45,7 @@ update_object_value 'dns' 'DOMAIN' "$domain" '$SOA' "$soa"
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -67,6 +67,7 @@ records="$(wc -l $USER_DATA/dns/$domain.conf |cut -f 1 -d ' ')"
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -44,6 +44,7 @@ update_object_value 'dns' 'DOMAIN' "$domain" '$TTL' "$ttl"
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -77,6 +77,7 @@ sort_dns_records
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -51,6 +51,7 @@ sort_dns_records
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -85,7 +85,7 @@ for cluster_str in $(grep "SUSPENDED='no'" $VESTA/conf/dns-cluster.conf); do
$send_cmd v-insert-dns-domain $DNS_USER "$str" $HOSTNAME 'no'
# Rebuild dns zone
$send_cmd v-rebuild-dns-domain $DNS_USER $domain 'scheduled'
$send_cmd v-rebuild-dns-domain $DNS_USER $domain 'scheduled' 'no'
if [ $? -ne 0 ]; then
echo "Error: $TYPE connection to $HOST failed (rebuild)"
log_event "$E_CONNECT $EVENT"

View file

@ -100,7 +100,7 @@ for cluster_str in $(grep "SUSPENDED='no'" $VESTA/conf/dns-cluster.conf); do
$send_cmd v-insert-dns-domain $DNS_USER "$str" $HOSTNAME 'no'
# Rebuild dns zone
$send_cmd v-rebuild-dns-domain $DNS_USER $domain 'scheduled'
$send_cmd v-rebuild-dns-domain $DNS_USER $domain 'scheduled' 'no'
if [ $? -ne 0 ]; then
echo "Error: $TYPE connection to $HOST failed (rebuild)"
log_event "$E_CONNECT $EVENT"

View file

@ -45,6 +45,7 @@ sed -i "/^ID='$id'/d" $USER_DATA/dns/$domain.conf
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -57,7 +57,7 @@ fi
# Prepare values for the insert
dns_rec="DOMAIN='$DOMAIN' IP='$IP' TPL='$TPL' TTL='$TTL' EXP='$EXP'"
dns_rec="$dns_rec SOA='$SOA' SRC='$src' RECORDS='$RECORDS'"
dns_rec="$dns_rec SOA='$SOA' SERIAL="$SERIAL" SRC='$src' RECORDS='$RECORDS'"
dns_rec="$dns_rec SUSPENDED='$SUSPENDED' TIME='$TIME' DATE='$DATE'"
echo "$dns_rec" >> $USER_DATA/dns.conf

View file

@ -87,7 +87,8 @@ is_object_valid 'dns' 'DOMAIN' "$domain"
# Defining config and fields to select
conf=$USER_DATA/dns.conf
fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $RECORDS $SUSPENDED $TIME $DATE'
fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $SERIAL $SRC $RECORDS
$SUSPENDED $TIME $DATE'
# Listing domains
case $format in

View file

@ -32,7 +32,8 @@ is_object_valid 'user' 'USER' "$user"
# Defining config and fields
conf=$USER_DATA/dns.conf
fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $SRC $RECORDS $SUSPENDED $TIME $DATE'
fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $SERIAL $SRC $RECORDS
$SUSPENDED $TIME $DATE'
# Listing domains
case $format in

View file

@ -1,6 +1,6 @@
#!/bin/bash
# info: rebuild dns domain
# options: USER DOMAIN [RESTART]
# options: USER DOMAIN [RESTART] [UPDATE_SERIAL]
#
# The function rebuilds DNS configuration files.
@ -13,6 +13,7 @@
user=$1
domain=$2
restart=$3
update_serial=$4
# Includes
source $VESTA/func/main.sh
@ -25,7 +26,7 @@ source $VESTA/conf/vesta.conf
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER DOMAIN [RESTART]'
check_args '2' "$#" 'USER DOMAIN [RESTART] [UPDATE_SERIAL]'
validate_format 'user' 'domain'
is_system_enabled "$DNS_SYSTEM" 'DNS_SYSTEM'
is_object_valid 'user' 'USER' "$user"
@ -59,10 +60,15 @@ if [ -e '/etc/bind/named.conf' ]; then
dns_conf='/etc/bind/named.conf'
fi
# Remove old user's zone
# Deleting old user's zone
sed -i "/\/$user\/conf\/dns\/$domain/d" $dns_conf
# Starting loop
# Updating zone serial
if [ "$update_serial" != 'no' ]; then
update_domain_serial
fi
# Rebuiling zone config
rebuild_dns_domain_conf

View file

@ -1,6 +1,6 @@
#!/bin/bash
# info: rebuild dns domains
# options: USER [RESTART]
# options: USER [RESTART] [UPDATE_SERIAL]
#
# The function rebuilds DNS configuration files.
@ -12,6 +12,7 @@
# Argument defenition
user=$1
restart=$2
update_serial=$3
# Includes
source $VESTA/func/main.sh
@ -24,7 +25,7 @@ source $VESTA/conf/vesta.conf
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'USER [RESTART]'
check_args '1' "$#" 'USER [RESTART] [UPDATE_SERIAL]'
validate_format 'user'
is_system_enabled "$DNS_SYSTEM" 'DNS_SYSTEM'
is_object_valid 'user' 'USER' "$user"
@ -65,6 +66,9 @@ sed -i "/\/$user\/conf\/dns/d" $dns_conf
# Starting loop
for domain in $(search_objects 'dns' 'DOMAIN' "*" 'DOMAIN'); do
if [ "$update_serial" != 'no' ]; then
update_domain_serial
fi
rebuild_dns_domain_conf
done

View file

@ -54,6 +54,7 @@ sort_dns_records
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -53,6 +53,7 @@ sort_dns_records
# Updating zone
if [[ "$DNS_SYSTEM" =~ named|bind ]]; then
update_domain_serial
update_domain_zone
fi

View file

@ -216,32 +216,13 @@ is_mail_new() {
# Update domain zone
update_domain_zone() {
conf="$HOMEDIR/$user/conf/dns/$domain.db"
line=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf)
domain_param=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf)
fields='$RECORD\t$TTL\tIN\t$TYPE\t$PRIORITY\t$VALUE'
if [ -e $conf ]; then
zn_serial=$(head $conf|grep 'SOA' -A1|tail -n 1|sed "s/ //g")
s_date=$(echo ${zn_serial:0:8})
c_date=$(date +'%Y%m%d')
if [ "$s_date" == "$c_date" ]; then
cur_value=$(echo ${zn_serial:8} )
new_value=$(expr $cur_value + 1 )
len_value=$(expr length $new_value)
if [ 1 -eq "$len_value" ]; then
new_value='0'$new_value
fi
serial="$c_date""$new_value"
else
serial="$(date +'%Y%m%d01')"
fi
else
serial="$(date +'%Y%m%d01')"
fi
eval $line
eval $domain_param
SOA=$(idn --quiet -a -t "$SOA")
echo "\$TTL $TTL
@ IN SOA $SOA. root.$domain_idn. (
$serial
$SERIAL
7200
3600
1209600
@ -264,6 +245,31 @@ update_domain_zone() {
done < $USER_DATA/dns/$domain.conf
}
# Update zone serial
update_domain_serial() {
zn_conf="$HOMEDIR/$user/conf/dns/$domain.db"
if [ -e $zn_conf ]; then
zn_serial=$(head $zn_conf |grep 'SOA' -A1 |tail -n 1 |sed "s/ //g")
s_date=$(echo ${zn_serial:0:8})
c_date=$(date +'%Y%m%d')
if [ "$s_date" == "$c_date" ]; then
cur_value=$(echo ${zn_serial:8} )
new_value=$(expr $cur_value + 1 )
len_value=$(expr length $new_value)
if [ 1 -eq "$len_value" ]; then
new_value='0'$new_value
fi
serial="$c_date""$new_value"
else
serial="$(date +'%Y%m%d01')"
fi
else
serial="$(date +'%Y%m%d01')"
fi
add_object_key "dns" 'DOMAIN' "$domain" 'SERIAL' 'RECORDS'
update_object_value 'dns' 'DOMAIN' "$domain" '$SERIAL' "$serial"
}
# Get next DNS record ID
get_next_dnsrecord(){
if [ -z "$id" ]; then

View file

@ -161,13 +161,20 @@ sort-expire="<?=strtotime($data[$key]['EXP'])?>" sort-records="<?=(int)$data[$ke
</td>
<td>
<div class="l-unit__stat-cols clearfix">
<div class="l-unit__stat-col l-unit__stat-col--left compact"><?=__('Expire')?>:</div>
<div class="l-unit__stat-col l-unit__stat-col--left compact"><?=__('Serial')?>:</div>
<div class="l-unit__stat-col l-unit__stat-col--right">
<b><?=translate_date($data[$key]['EXP'])?></b>
<b><?=$data[$key]['SERIAL']?></b>
</div>
</div>
</td>
<td>
<div class="l-unit__stat-cols clearfix">
<div class="l-unit__stat-col l-unit__stat-col--left compact"><?=__('Expire')?>:</div>
<div class="l-unit__stat-col l-unit__stat-col--right">
<b><?=$data[$key]['EXP']?></b>
</div>
</div>
</td>
</tr>