1707
This commit is contained in:
@@ -50,7 +50,6 @@
|
||||
control_queue: "{{ lookup('env','CONTROLQUEUE') | default('queue_controls', true) }}"
|
||||
afterupgrade_routing_key: "{{ lookup('env','AFTERUP_ROUTING_KEY') | default('deviceconfig', true) }}"
|
||||
|
||||
|
||||
pre_tasks:
|
||||
# ------------------------------- Hostname sanity DEV1 -------------------------------
|
||||
- name: Read DEV1 hostname from env busybox safe
|
||||
@@ -606,7 +605,6 @@
|
||||
set -e
|
||||
PORT="{{ _local_port }}"
|
||||
sshpass -f "{{ dev2_passfile_used }}" ssh \
|
||||
-o AddressFamily=inet \
|
||||
-o StrictHostKeyChecking=no -o PubkeyAuthentication=no \
|
||||
-o PreferredAuthentications=password -o NumberOfPasswordPrompts=1 \
|
||||
-o ConnectTimeout=10 \
|
||||
@@ -931,7 +929,6 @@
|
||||
when: tag_restart_sched_payload is defined
|
||||
delegate_to: localhost
|
||||
|
||||
|
||||
- name: Note reboot request bad format
|
||||
when: (rebootin | default('') | string | trim | length) > 0 and not _reboot_requested
|
||||
ansible.builtin.debug:
|
||||
@@ -987,10 +984,8 @@
|
||||
when: journal_indoor_updated is defined
|
||||
delegate_to: localhost
|
||||
|
||||
|
||||
# ──────────────────────────────── NEW: derive expected version for the checker ────────────────────────────────
|
||||
|
||||
# >>> ADDED: initialize scheduling window so au_delay_sec exists for the derivation <<<
|
||||
# Schedule window (we only send after-upgrade if write succeeded & not blocked)
|
||||
- name: Init after-upgrade scheduling vars (attempt 1 + delay from reboot + 6m)
|
||||
ansible.builtin.set_fact:
|
||||
au_attempt: 1
|
||||
@@ -1005,17 +1000,15 @@
|
||||
au_original_emitted_at: "{{ lookup('pipe', 'date -u +%FT%TZ') }}"
|
||||
when: au_delay_sec is defined
|
||||
delegate_to: localhost
|
||||
# <<< END ADDED >>>
|
||||
|
||||
# --- SAFE expected target derivation (split into separate set_fact tasks) ---
|
||||
|
||||
# Strict, single-source expected version: "X.Y.Z-rNNNN" from image_filename
|
||||
- name: Compute expected firmware core "X.Y.Z-rNNNN" from image filename (strict)
|
||||
delegate_to: localhost
|
||||
ansible.builtin.set_fact:
|
||||
expected_fw_core: >-
|
||||
{{
|
||||
image_filename
|
||||
| regex_replace('.*?([0-9]+\.[0-9]+\.[0-9]+)-r([0-9]+).*','\1-r\2')
|
||||
| regex_replace('.*?([0-9]+\\.[0-9]+\\.[0-9]+)-r([0-9]+).*','\\1-r\\2')
|
||||
}}
|
||||
when: au_delay_sec is defined
|
||||
|
||||
@@ -1039,54 +1032,12 @@
|
||||
- "expected_fw_core={{ expected_fw_core }}"
|
||||
when: expected_fw_core is defined
|
||||
|
||||
|
||||
- name: If no -rNNNN, also try to pull rev from 'rev NNNN' (case-insensitive)
|
||||
delegate_to: localhost
|
||||
ansible.builtin.set_fact:
|
||||
_img_rev_num: >-
|
||||
{{
|
||||
(_img_rev_num | length) > 0
|
||||
| ternary(
|
||||
_img_rev_num,
|
||||
(
|
||||
(_img_base is search('(?i)rev[^0-9]*[0-9]+'))
|
||||
| ternary(
|
||||
(_img_base | regex_replace('.*(?i)rev[^0-9]*([0-9]+).*','\\1')),
|
||||
''
|
||||
)
|
||||
)
|
||||
)
|
||||
}}
|
||||
when: au_delay_sec is defined
|
||||
|
||||
- name: Assemble expected_fw_core (prefer X.Y.Z-rNNNN → X.Y.Z → image base)
|
||||
delegate_to: localhost
|
||||
ansible.builtin.set_fact:
|
||||
expected_fw_core: >-
|
||||
{{
|
||||
(_img_ver_core | length) > 0 and (_img_rev_num | length) > 0
|
||||
and (_img_ver_core ~ '-r' ~ _img_rev_num)
|
||||
or
|
||||
((_img_ver_core | length) > 0 and _img_ver_core)
|
||||
or
|
||||
_img_base
|
||||
}}
|
||||
when: au_delay_sec is defined
|
||||
|
||||
- name: Debug derived target version
|
||||
delegate_to: localhost
|
||||
ansible.builtin.debug:
|
||||
msg:
|
||||
- "image_filename={{ image_filename }}"
|
||||
- "expected_fw_core={{ expected_fw_core }}"
|
||||
when: expected_fw_core is defined
|
||||
|
||||
- name: Build after-upgrade check payload (attempt 1)
|
||||
ansible.builtin.set_fact:
|
||||
afterupgrade_payload:
|
||||
task_name: "afterupgrade_indoor_check"
|
||||
inscope_device: "{{ ansible_hostname | default(inventory_hostname) }}"
|
||||
target_version: "{{ expected_fw_core | default(fw_banner_repr | default(image_filename | regex_replace('\\.bin$',''))) }}"
|
||||
target_version: "{{ expected_fw_core }}"
|
||||
attempt: "{{ au_attempt }}"
|
||||
max_attempts: "{{ au_max_attempts }}"
|
||||
current_delay_sec: "{{ au_delay_sec }}"
|
||||
@@ -1096,7 +1047,6 @@
|
||||
when: au_delay_sec is defined
|
||||
delegate_to: localhost
|
||||
|
||||
|
||||
- name: Debug x-delay about to be sent (ms)
|
||||
ansible.builtin.debug:
|
||||
msg: "x-delay(ms) = {{ (au_delay_sec | int) * 1000 }}"
|
||||
@@ -1130,7 +1080,6 @@
|
||||
when: afterupgrade_payload is defined
|
||||
delegate_to: localhost
|
||||
|
||||
|
||||
# ---------------------------- summary ----------------------------
|
||||
- name: Summary show key results
|
||||
delegate_to: localhost
|
||||
@@ -1194,4 +1143,3 @@
|
||||
- "del_ip.stdout={{ (del_ip.stdout | default('')) | trim }}"
|
||||
- "del_ip.stderr={{ (del_ip.stderr | default('')) | trim }}"
|
||||
when: del_ip is defined
|
||||
|
||||
|
||||
Reference in New Issue
Block a user