feat: adding 2.2.3-r9800 2040
This commit is contained in:
@@ -35,6 +35,13 @@
|
|||||||
# preserve the original string verbatim for all subsequent retries
|
# preserve the original string verbatim for all subsequent retries
|
||||||
target_version_full: "{{ target_version | default('') }}"
|
target_version_full: "{{ target_version | default('') }}"
|
||||||
|
|
||||||
|
- name: Derive effective target version (avoid extra-var masking)
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
target_version_effective: >-
|
||||||
|
{{ (target_version_full | default('') | trim)
|
||||||
|
if (target_version_full | default('') | trim)
|
||||||
|
else (target_version | default('') | trim) }}
|
||||||
|
|
||||||
- name: Show received metadata
|
- name: Show received metadata
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg:
|
msg:
|
||||||
@@ -116,7 +123,8 @@
|
|||||||
- name: Evaluate version match (full-string contains check)
|
- name: Evaluate version match (full-string contains check)
|
||||||
when: nc_probe.rc == 0 and banner_probe.rc == 0
|
when: nc_probe.rc == 0 and banner_probe.rc == 0
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
version_match: "{{ (target_version_full | length > 0) and (target_version_full in (banner_probe.stdout | default(''))) }}"
|
version_match: "{{ (target_version_effective | length > 0) and (target_version_effective in (banner_probe.stdout | default(''))) }}"
|
||||||
|
|
||||||
|
|
||||||
# ---- Journaling paths ----
|
# ---- Journaling paths ----
|
||||||
# Success: banner matches expected full target_version
|
# Success: banner matches expected full target_version
|
||||||
@@ -129,7 +137,7 @@
|
|||||||
task_name: "journal_add"
|
task_name: "journal_add"
|
||||||
task_result: >-
|
task_result: >-
|
||||||
afterupgrade_check SUCCESS (attempt {{ attempt }}/{{ effective_max_attempts }}):
|
afterupgrade_check SUCCESS (attempt {{ attempt }}/{{ effective_max_attempts }}):
|
||||||
Banner='{{ (banner_probe.stdout | default('') | trim) }}' Target='{{ target_version_full }}'
|
Banner='{{ (banner_probe.stdout | default('') | trim) }}' Target='{{ target_version_effective }}'
|
||||||
Correlation={{ correlation_id }} Original={{ original_emitted_at }}
|
Correlation={{ correlation_id }} Original={{ original_emitted_at }}
|
||||||
|
|
||||||
- name: Publish success journal to control queue
|
- name: Publish success journal to control queue
|
||||||
@@ -195,7 +203,7 @@
|
|||||||
task_name: "journal_add"
|
task_name: "journal_add"
|
||||||
task_result: >-
|
task_result: >-
|
||||||
afterupgrade_check MISMATCH (attempt {{ attempt }}/{{ effective_max_attempts }}):
|
afterupgrade_check MISMATCH (attempt {{ attempt }}/{{ effective_max_attempts }}):
|
||||||
Expected='{{ target_version_full }}' Got='{{ (banner_probe.stdout | default('') | trim) }}'
|
Expected='{{ target_version_effective }}' Got='{{ (banner_probe.stdout | default('') | trim) }}'
|
||||||
Correlation={{ correlation_id }} Original={{ original_emitted_at }}
|
Correlation={{ correlation_id }} Original={{ original_emitted_at }}
|
||||||
|
|
||||||
- name: Publish mismatch journal to control queue
|
- name: Publish mismatch journal to control queue
|
||||||
|
|||||||
@@ -653,23 +653,6 @@
|
|||||||
when: nbq2_payload_obj is defined
|
when: nbq2_payload_obj is defined
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|
||||||
- name: Init after-upgrade scheduling vars
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
au_attempt: 1
|
|
||||||
au_max_attempts: 3
|
|
||||||
# If a reboot was scheduled on the target, wait reboot_seconds + 300s (5m).
|
|
||||||
# Because this task runs with delegate_to: localhost, read from hostvars.
|
|
||||||
au_delay_sec: >-
|
|
||||||
{{
|
|
||||||
(
|
|
||||||
(hostvars[inventory_hostname].reboot_seconds | default(0) | int)
|
|
||||||
+ 300
|
|
||||||
)
|
|
||||||
if (hostvars[inventory_hostname].reboot_seconds is defined)
|
|
||||||
else 300
|
|
||||||
}}
|
|
||||||
when: nbq2_payload_obj is defined
|
|
||||||
delegate_to: localhost
|
|
||||||
|
|
||||||
# NEW: compute values that the payload will reference
|
# NEW: compute values that the payload will reference
|
||||||
- name: Generate correlation ID and original emitted timestamp
|
- name: Generate correlation ID and original emitted timestamp
|
||||||
@@ -679,25 +662,11 @@
|
|||||||
when: nbq2_payload_obj is defined
|
when: nbq2_payload_obj is defined
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|
||||||
- name: Build after-upgrade check payload (attempt 1)
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
afterupgrade_payload:
|
|
||||||
task_name: "afterupgrade_check"
|
|
||||||
inscope_device: "{{ ansible_hostname | default(inventory_hostname) }}"
|
|
||||||
target_version: "{{ fw_banner_repr }}"
|
|
||||||
attempt: "{{ au_attempt | default(1) }}"
|
|
||||||
max_attempts: "{{ au_max_attempts | default(3) }}"
|
|
||||||
current_delay_sec: "{{ au_delay_sec | default(300) }}"
|
|
||||||
correlation_id: "{{ au_correlation_id }}"
|
|
||||||
original_emitted_at: "{{ au_original_emitted_at }}"
|
|
||||||
schema_version: 1
|
|
||||||
when: nbq2_payload_obj is defined
|
|
||||||
delegate_to: localhost
|
|
||||||
|
|
||||||
- name: Build after-upgrade check payload (attempt 1)
|
- name: Build after-upgrade check payload (attempt 1)
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
au_attempt: 1
|
au_attempt: 1
|
||||||
au_delay_sec: 300
|
au_delay_sec: "{{ au_delay_sec | default(300) }}"
|
||||||
au_correlation_id: "{{ lookup('pipe', 'date +%s%N | sha1sum | cut -c1-12') }}"
|
au_correlation_id: "{{ lookup('pipe', 'date +%s%N | sha1sum | cut -c1-12') }}"
|
||||||
au_original_emitted_at: "{{ lookup('pipe', 'date -u +%FT%TZ') }}"
|
au_original_emitted_at: "{{ lookup('pipe', 'date -u +%FT%TZ') }}"
|
||||||
afterupgrade_payload:
|
afterupgrade_payload:
|
||||||
@@ -719,6 +688,15 @@
|
|||||||
when: afterupgrade_payload is defined
|
when: afterupgrade_payload is defined
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|
||||||
|
- name: DEBUG after-upgrade payload and timing
|
||||||
|
delegate_to: localhost
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg:
|
||||||
|
- "afterupgrade_payload={{ afterupgrade_payload | to_nice_json }}"
|
||||||
|
- "au_delay_sec={{ au_delay_sec }}"
|
||||||
|
- "reboot_seconds(host)={{ hostvars[inventory_hostname].reboot_seconds | default('undefined') }}"
|
||||||
|
|
||||||
|
|
||||||
- name: Publish delayed after-upgrade check to holding exchange
|
- name: Publish delayed after-upgrade check to holding exchange
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "http://{{ rmq_host }}:{{ rmq_port }}/api/exchanges/{{ rmq_vhost | urlencode }}/{{ 'deviceconfig.delayed' | urlencode }}/publish"
|
url: "http://{{ rmq_host }}:{{ rmq_port }}/api/exchanges/{{ rmq_vhost | urlencode }}/{{ 'deviceconfig.delayed' | urlencode }}/publish"
|
||||||
|
|||||||
Reference in New Issue
Block a user