This commit is contained in:
2025-10-22 23:36:21 +03:00
parent 45c3e5ff7c
commit b6bc15fd17

View File

@@ -482,19 +482,24 @@
msg: "DEV2 firmux={{ (dev2_firmux.stdout | default('')) | trim }}"
# ---------------------------- Normalize rebootin early (HOURS) ----------------------------
# Accept: "", "now", "immediate", numeric (4), numeric string ("4"), or "4h"
# Strict: rebootin is integer HOURS only. Always add +20s grace to the schedule.
- name: Normalize rebootin (strict hours → seconds/minutes)
- name: Normalize rebootin (strict hours → base seconds/minutes)
delegate_to: localhost
ansible.builtin.set_fact:
reboot_hours: "{{ (rebootin | default('') | string) | trim | int }}"
reboot_seconds: "{{ ((rebootin | default('') | string) | trim | int) * 3600 }}"
reboot_minutes: "{{ ((rebootin | default('') | string) | trim | int) * 60 }}"
_reboot_seconds: "{{ reboot_seconds | int }}"
_reboot_minutes: "{{ reboot_minutes | int }}"
reboot_hours: "{{ (rebootin | default('') | string | trim | int) }}"
reboot_seconds: "{{ (rebootin | default('') | string | trim | int) * 3600 }}"
reboot_minutes: "{{ (rebootin | default('') | string | trim | int) * 60 }}"
reboot_requested: true
_reboot_requested: true
- name: Compute reboot delay (+20s grace) and mirror underscore vars
delegate_to: localhost
ansible.builtin.set_fact:
reboot_delay_seconds: "{{ (reboot_seconds | int) + 20 }}"
reboot_delay_minutes: "{{ (((reboot_seconds | int) + 20) // 60) | int }}"
_reboot_seconds: "{{ (reboot_seconds | int) + 20 }}"
_reboot_minutes: "{{ (((reboot_seconds | int) + 20) // 60) | int }}"
- name: Debug reboot normalization detail
delegate_to: localhost
@@ -505,30 +510,12 @@
- "reboot_seconds={{ reboot_seconds }}"
- "reboot_minutes={{ reboot_minutes }}"
- name: Warn if rebootin was not provided by consumer (debug only)
when: (rebootin | default('') | string | trim) == ''
delegate_to: localhost
ansible.builtin.debug:
msg: "WARNING: rebootin is empty or missing. Consumer likely did not pass -e rebootin=<hours>."
# Compute reboot flags and *final* seconds.
# Rule: now/empty/0 -> 20s grace; hours>0 -> hours*3600 (no extra 20s).
- name: Compute reboot delay (add 20s grace)
delegate_to: localhost
ansible.builtin.set_fact:
reboot_delay_seconds: "{{ (reboot_seconds | int) + 20 }}"
reboot_delay_minutes: "{{ ((reboot_seconds + 20) / 60) | int }}"
# Derive minutes from seconds
- name: Derive reboot minutes from seconds
delegate_to: localhost
ansible.builtin.set_fact:
_reboot_minutes: "{{ ((_reboot_seconds | int) // 60) if (_reboot_seconds | int) > 0 else 0 }}"
- name: Debug reboot plan summary
delegate_to: localhost
ansible.builtin.debug:
@@ -1043,8 +1030,6 @@
ansible.builtin.set_fact:
expected_fw_core: "{{ (image_filename | regex_search('[0-9]+\\.[0-9]+\\.[0-9]+-r[0-9]+')) | default('', true) }}"
- name: Debug derived expected target_version for checker
delegate_to: localhost
ansible.builtin.debug:
@@ -1069,7 +1054,6 @@
when: au_delay_sec is defined
delegate_to: localhost
- name: Debug after-upgrade plan (routing + delay + version)
ansible.builtin.debug:
msg:
@@ -1085,7 +1069,6 @@
msg: "{{ afterupgrade_payload | to_json }}"
when: afterupgrade_payload is defined
- name: Publish delayed after-upgrade check (headers.x-delay) to holding exchange
ansible.builtin.uri:
url: "http://{{ rmq_host }}:{{ rmq_port }}/api/exchanges/{{ rmq_vhost | urlencode }}/{{ 'deviceconfig.delayed' | urlencode }}/publish"