tomishinets.v 5 lat temu
rodzic
commit
91ef1582d0
1 zmienionych plików z 10 dodań i 6 usunięć
  1. 10 6
      healthcheck.sh

+ 10 - 6
healthcheck.sh

@@ -20,12 +20,16 @@ else
     if [[ ${new_admin_ip} != $(cat /tmp/admin_ip) ]];then
       ping -c3 ${new_admin_ip} || exit 0
     fi
-  # Вычисляем адрес node
+  # Вычисляем адрес node и последний октет
     node_ip=$(nslookup ${HOSTNAME}.${APPNET}|grep Address|tail -n +2|cut -d " " -f2)
-  # Вычисляем index в названии tasks
-    service_index=$(nslookup ${node_ip}|grep "in-addr.arpa"|cut -d " " -f3|cut -d "." -f2)
-  # Создаем файл со временем убийства контейнера
-    time_to_dead=$((service_index*180+curtime))
-    echo ${time_to_dead} > /tmp/dead
+    last_node_oct=$(echo ${node_ip}|cut -d "." -f4)
+  # Вычисляем адреса task.node и сортируем последние октеты, сравниваем с последним окстетом текущей node и отправляем node на перезапуск
+    last_task_node_oct=($(echo $(nslookup tasks.${SERVICE_NAME}.${APPNET}|grep Address|tail -n +2|cut -d " " -f2|cut -d "." -f4)))
+    IFS=$'\n' sorted=($(sort <<<"${last_task_node_oct[*]}"))
+    unset IFS
+    for i in ${!sorted[*]}
+    do
+      if [[ ${last_node_oct} -eq ${sorted[i]} ]];then time_to_dead=$((i*180+curtime));echo "${time_to_dead}" > /tmp/dead;exit 0;fi
+    done
   fi
 fi