From be0260ca1ea7cc6857f3eba7345e88ad58d26eee Mon Sep 17 00:00:00 2001 From: pavel Date: Wed, 23 Sep 2026 15:49:55 +0300 Subject: [PATCH] 1549 --- files/ansible-playbooks/sot-updater.yml | 43 +++++++++++++------------ 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/files/ansible-playbooks/sot-updater.yml b/files/ansible-playbooks/sot-updater.yml index e117fe0..ca4ebdc 100644 --- a/files/ansible-playbooks/sot-updater.yml +++ b/files/ansible-playbooks/sot-updater.yml @@ -2654,36 +2654,46 @@ shell: | set -o pipefail - # Choose connection method (tunnel > LLDP IPv4 > LLDP IPv6) + # Try every DEV2 shell path that is available. + # Stop only after a path actually returns true/false. if [ "{{ dev2_passfile_used | default('NONE') }}" != "NONE" ]; then PORT="{{ _local_port }}" - sshpass -f "{{ dev2_passfile_used }}" ssh {{ ssh_opts_common }} \ + OUT="$(sshpass -f "{{ dev2_passfile_used }}" ssh {{ ssh_opts_common }} \ -o ConnectTimeout={{ ssh_timeout }} \ -p "$PORT" "{{ dev2_ssh_user }}@127.0.0.1" \ - "cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1" - exit 0 + "cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1" 2>/dev/null || true)" + case "$(printf '%s' "$OUT" | tr '[:upper:]' '[:lower:]')" in + *true*) echo true; exit 0 ;; + *false*) echo false; exit 0 ;; + esac fi if [ "{{ dev2_passfile_used_lldp | default('NONE') }}" != "NONE" ] && [ -n "{{ lldp_dev2_ip | default('') }}" ]; then - sshpass -f "{{ dev2_passfile_used_lldp }}" ssh \ + OUT="$(sshpass -f "{{ dev2_passfile_used_lldp }}" ssh \ -o StrictHostKeyChecking=no -o PubkeyAuthentication=no \ -o ConnectTimeout=15 \ "{{ dev2_ssh_user }}@{{ lldp_dev2_ip }}" \ - "cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1" - exit 0 + "cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1" 2>/dev/null || true)" + case "$(printf '%s' "$OUT" | tr '[:upper:]' '[:lower:]')" in + *true*) echo true; exit 0 ;; + *false*) echo false; exit 0 ;; + esac fi if [ "{{ dev2_passfile_used_lldp6 | default('NONE') }}" != "NONE" ] && [ -n "{{ lldp_dev2_ip6 | default('') }}" ]; then IP6="{{ lldp_dev2_ip6 }}" F="{{ dev2_passfile_used_lldp6 }}" - sshpass -p '{{ dev1_pass }}' ssh {{ ssh_opts_common }} \ + OUT="$(sshpass -p '{{ dev1_pass }}' ssh {{ ssh_opts_common }} \ "{{ dev1_user }}@{{ ansible_host|default(inventory_hostname) }}" \ "sshpass -f '/tmp/${F}' ssh \ -o StrictHostKeyChecking=no -o PubkeyAuthentication=no \ -o ConnectTimeout={{ ssh_timeout }} \ '{{ dev2_ssh_user }}@\[${IP6}%{{ dev1_iface }}\]' \ - \"cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1\"" - exit 0 + \"cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1\"" 2>/dev/null || true)" + case "$(printf '%s' "$OUT" | tr '[:upper:]' '[:lower:]')" in + *true*) echo true; exit 0 ;; + *false*) echo false; exit 0 ;; + esac fi exit 0 @@ -2697,16 +2707,7 @@ - name: Dev2 | Normalize payredirect value delegate_to: localhost vars: - payredirect_raw_clean: >- - {{ - 'true' - if 'true' in (dev2_payredirect_raw.stdout | default('') | lower) - else ( - 'false' - if 'false' in (dev2_payredirect_raw.stdout | default('') | lower) - else '' - ) - }} + payredirect_raw_clean: "{{ dev2_payredirect_raw.stdout | default('') | trim | lower }}" set_fact: payredirect_value: >- {{ @@ -2761,7 +2762,7 @@ delegate_to: localhost set_fact: non_ts_diff_found: true - changed_when: false + changed_when: false # ----------------------- Dev2 indoor_ip resolution (ppp0/eth0.4000 preferred) ----------------------- - name: Indoor | Compute fallback connected IP (as used for Dev2 reachability)