diff --git a/firewall/firewall-add b/firewall/firewall-add index 651d9a2..4272750 100755 --- a/firewall/firewall-add +++ b/firewall/firewall-add @@ -28,6 +28,10 @@ set | grep TARGET set | grep ROLES SERVICE_FILES=$SERVICE_FILES +HOST_FILE=$HOST_FILE +if [ "$HOST_FILE" == "" ]; then + HOST_FILE="/etc/dns/hosts.local"; +fi RETRIES_NUMBER=$RETRIES_NUMBER @@ -54,6 +58,18 @@ name_resolver() { for D in $(echo $DNS); do + + if [ -z "$STRICK_CHECK" ]; then + # find $D as SELECTOR in hosts file + EXISTS=$(grep -w $D $HOST_FILE); + #EXISTS=$(grep -w "$D-" $HOST_FILE); # TODO? + if [ -n "$EXISTS" ]; then # selector exists in hosts file + APP_IP=$(echo $EXISTS | sed s/$D//g); # remove all selectors + debug "APP_IP: "$APP_IP; + else + debug "no matching APPLICATION NAME found in $HOST_FILE" + fi + else D=$(echo $D | cut -d "-" -f1) UP=$(docker ps --format '{{.Names}}\t{{.Status}}' | grep Up | awk '{print $1}' | grep $D"-") ; # filtering for ROLES variables if exists. @@ -103,10 +119,10 @@ name_resolver() { else debug "no matching running process found" fi - + fi done; - if [ $UP_COUNT -lt $SRV_COUNT ]; then + if [[ ! -z "$STRICK_CHECK" && $UP_COUNT -lt $SRV_COUNT ]]; then if [ "$2" == "" ]; then RETRIES=0; else RETRIES=$2; fi; @@ -155,8 +171,8 @@ if [[ -z "$SOURCE_IP" ]]; then else IDX=$(expr 1 + $IDX) if [[ "$(echo $i | cut -d . -f4)" == "0" ]] ; then - SOURCE_IP="$SOURCE_IP/24"; - eval SOURCE_IP_$IDX="$SOURCE_IP/24"; + SOURCE_IP="$i/24"; + eval SOURCE_IP_$IDX="$i/24"; debug "source ip is $SOURCE_IP"; else eval SOURCE_IP_$IDX=$i; @@ -203,8 +219,8 @@ if [[ -z "$TARGET_IP" ]]; then else IDX=$(expr 1 + $IDX) if [[ "$(echo $i | cut -d . -f4)" == "0" ]] ; then - TARGET_IP="$TARGET_IP/24"; - eval TARGET_IP_$IDX="$TARGET_IP/24"; + TARGET_IP="$i/24"; + eval TARGET_IP_$IDX="$i/24"; debug "target ip is $TARGET_IP"; else eval TARGET_IP_$IDX=$i;