Serghey Rodin 12 лет назад
Родитель
Сommit
f087a7402a
2 измененных файлов с 28 добавлено и 13 удалено
  1. 4 1
      bin/v-insert-dns-domain
  2. 24 12
      bin/v-sync-dns-cluster

+ 4 - 1
bin/v-insert-dns-domain

@@ -19,6 +19,7 @@ restart=$5
 # Includes
 source $VESTA/conf/vesta.conf
 source $VESTA/func/main.sh
+source $VESTA/func/domain.sh
 
 
 #----------------------------------------------------------#
@@ -30,6 +31,9 @@ validate_format 'user' 'data'
 is_system_enabled "$DNS_SYSTEM" 'DNS_SYSTEM'
 is_object_valid 'user' 'USER' "$user"
 is_object_unsuspended 'user' 'USER' "$user"
+eval $data
+domain="$DOMAIN"
+is_domain_new 'dns'
 
 
 #----------------------------------------------------------#
@@ -37,7 +41,6 @@ is_object_unsuspended 'user' 'USER' "$user"
 #----------------------------------------------------------#
 
 # Prepare values for the insert
-eval $data
 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 SUSPENDED='$SUSPENDED' TIME='$TIME' DATE='$DATE'"

+ 24 - 12
bin/v-sync-dns-cluster

@@ -111,6 +111,9 @@ for cluster_str in $hosts; do
     done
 
     # Clean source records
+    if [ ! -z "$verbose" ]; then
+        echo "STATUS: Wiping dns domains"
+    fi
     $send_cmd v-delete-dns-domains-src $DNS_USER $HOSTNAME no
     if [ $? -ne 0 ]; then
         echo "Error: $TYPE connection to $HOST failed (cleanup)"
@@ -125,21 +128,30 @@ for cluster_str in $hosts; do
         for str in $(cat $VESTA/data/users/$user/dns.conf); do
             eval $str
             if [ ! -z "$verbose" ]; then
-                echo "DOMAIN: $DOMAIN"
+                echo "DOMAIN: $DOMAIN index"
             fi
             $send_cmd v-insert-dns-domain $DNS_USER "$str" $HOSTNAME
-
-            # Sync record
-            if [ "$TYPE" = 'ssh' ]; then
-                tmp=$(mktemp -u)
-                scp_cmd $USER_DATA/$user/dns/$DOMAIN.conf $tmp
-                $send_cmd v-insert-dns-records $DNS_USER $DOMAIN $tmp
+            if [ $? -eq 0 ]; then
+                if [ ! -z "$verbose" ]; then
+                    echo "DOMAIN: $DOMAIN records"
+                fi
+
+                # Sync record
+                if [ "$TYPE" = 'ssh' ]; then
+                    tmp=$(mktemp -u)
+                    scp_cmd $USER_DATA/$user/dns/$DOMAIN.conf $tmp
+                    $send_cmd v-insert-dns-records $DNS_USER $DOMAIN $tmp
+                else
+                    for str in $(cat $USER_DATA/$user/dns/$DOMAIN.conf); do
+                        str=$(echo "$str" | sed 's/"/\\"/g')
+                        $send_cmd v-insert-dns-record \
+                            $DNS_USER $DOMAIN "$str"
+                    done
+                fi
             else
-                for str in $(cat $USER_DATA/$user/dns/$DOMAIN.conf); do
-                    str=$(echo "$str" | sed 's/"/\\"/g')
-                    $send_cmd v-insert-dns-record \
-                        $DNS_USER $DOMAIN "$str"
-                done
+                if [ ! -z "$verbose" ]; then
+                    echo "DOMAIN: $DOMAIN skiping records (not uniq)"
+                fi
             fi
         done
     done