1553
This commit is contained in:
@@ -162,7 +162,7 @@
|
||||
{{
|
||||
dict(
|
||||
nb_tokens
|
||||
| select('match', '^[a-zA-Z_]+=')
|
||||
| select('match', '^[a-zA-Z_]+=')
|
||||
| map('split', '=', 1)
|
||||
| map('list')
|
||||
)
|
||||
@@ -281,6 +281,14 @@
|
||||
- "Device: {{ inventory_hostname }}"
|
||||
- "Mode: report-only (soft-fail telemetry)"
|
||||
|
||||
# ----------------------- Scan status tracking (journal finalization) -----------------------
|
||||
- name: Init scan status tracking
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: []
|
||||
scan_fail: []
|
||||
changed_when: false
|
||||
|
||||
# ----------------------- Temp IP on DEV1 -----------------------
|
||||
- name: Add temporary IP on DEV1
|
||||
raw: "{{ pathprefix }} ip a add {{ dev2_side_ip }} dev {{ dev1_iface }}"
|
||||
@@ -432,6 +440,14 @@
|
||||
set_fact:
|
||||
dev1_fw_clean: "{{ dev1_fw_clean_cmd.stdout|trim }}"
|
||||
|
||||
# ----------------------- Scan tracking: Dev1 fw_version -----------------------
|
||||
- name: Scan tracking | Dev1 fw_version outcome
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: "{{ scan_ok + (['fw_version'] if ((dev1_fw_clean | default('') | length) > 0) else []) }}"
|
||||
scan_fail: "{{ scan_fail + (['fw_version=unavailable'] if ((dev1_fw_clean | default('') | length) == 0) else []) }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Publish Dev1 fw_version
|
||||
delegate_to: localhost
|
||||
uri:
|
||||
@@ -488,6 +504,13 @@
|
||||
set_fact:
|
||||
multissidfix_value: "{{ (ssid_profiles_summary_raw.stdout | default('0 (0e 0d)')) | trim }}"
|
||||
|
||||
# ----------------------- Scan tracking: Dev1 multissidfix -----------------------
|
||||
- name: Scan tracking | Dev1 multissidfix outcome
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: "{{ scan_ok + ['multissidfix'] }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Dev1 | multissidfix debug
|
||||
delegate_to: localhost
|
||||
when: multissidfix_value is defined
|
||||
@@ -642,6 +665,13 @@
|
||||
{{ scroll24_ver_clean | default('v1') }}_{{ scroll24_schedule }}
|
||||
{%- endif -%}
|
||||
|
||||
# ----------------------- Scan tracking: Dev1 scroll24 -----------------------
|
||||
- name: Scan tracking | Dev1 scroll24 outcome
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: "{{ scan_ok + ['scroll24'] }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Dev1 | scroll24 debug
|
||||
delegate_to: localhost
|
||||
debug:
|
||||
@@ -674,7 +704,7 @@
|
||||
} | to_json }}"
|
||||
payload_encoding: "string"
|
||||
changed_when: false
|
||||
|
||||
|
||||
|
||||
# ----------------------- Dev1 wifidebug.sh check & publish -----------------------
|
||||
- name: Dev1 | Check wifidebug.sh presence
|
||||
@@ -718,6 +748,13 @@
|
||||
{%- elif (wd_version_clean | default('') | length) > 0 -%}v{{ wd_version_clean }}
|
||||
{%- else -%}n/a{%- endif -%}
|
||||
|
||||
# ----------------------- Scan tracking: Dev1 wifidebug -----------------------
|
||||
- name: Scan tracking | Dev1 wifidebug outcome
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: "{{ scan_ok + ['wifidebug'] }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Publish Dev1 wifidebug custom field
|
||||
delegate_to: localhost
|
||||
uri:
|
||||
@@ -768,6 +805,14 @@
|
||||
else (dev1_bootenv_wc.stdout | default('') | trim)
|
||||
}}
|
||||
|
||||
# ----------------------- Scan tracking: Dev1 cpe_bootenv -----------------------
|
||||
- name: Scan tracking | Dev1 cpe_bootenv outcome
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: "{{ scan_ok + (['cpe_bootenv'] if ((cpe_bootenv_value | default('unavailable')) != 'unavailable') else []) }}"
|
||||
scan_fail: "{{ scan_fail + (['cpe_bootenv=unavailable'] if ((cpe_bootenv_value | default('unavailable')) == 'unavailable') else []) }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Publish Dev1 cpe_bootenv custom field
|
||||
delegate_to: localhost
|
||||
uri:
|
||||
@@ -1216,6 +1261,14 @@
|
||||
- "dev2_firmux_text='{{ dev2_firmux_text | default('') | regex_replace('\n','\\n') }}'"
|
||||
- "indoor_fw_norm='{{ indoor_fw_norm | default('') }}'"
|
||||
|
||||
# ----------------------- Scan tracking: Dev2 indoor_fwver -----------------------
|
||||
- name: Scan tracking | Dev2 indoor_fwver outcome
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: "{{ scan_ok + (['indoor_fwver'] if ((indoor_fw_norm | default('') | length) > 0) else []) }}"
|
||||
scan_fail: "{{ scan_fail + (['indoor_fwver=unavailable'] if ((indoor_fw_norm | default('') | length) == 0) else []) }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Publish Dev2 indoor_fwver
|
||||
delegate_to: localhost
|
||||
uri:
|
||||
@@ -1350,6 +1403,14 @@
|
||||
else (indoor_bootenv_raw | default('') | trim)
|
||||
}}
|
||||
|
||||
# ----------------------- Scan tracking: Dev2 indoor_bootenv -----------------------
|
||||
- name: Scan tracking | Dev2 indoor_bootenv outcome
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: "{{ scan_ok + (['indoor_bootenv'] if ((indoor_bootenv_value | default('unavailable')) != 'unavailable') else []) }}"
|
||||
scan_fail: "{{ scan_fail + (['indoor_bootenv=unavailable'] if ((indoor_bootenv_value | default('unavailable')) == 'unavailable') else []) }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Publish Dev2 indoor_bootenv custom field
|
||||
delegate_to: localhost
|
||||
uri:
|
||||
@@ -1490,6 +1551,14 @@
|
||||
)
|
||||
}}
|
||||
|
||||
# ----------------------- Scan tracking: Dev2 indoor_hostname -----------------------
|
||||
- name: Scan tracking | Dev2 indoor_hostname outcome
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
scan_ok: "{{ scan_ok + (['indoor_hostname'] if ((indoor_hostname_value | default('unavailable')) != 'unavailable') else []) }}"
|
||||
scan_fail: "{{ scan_fail + (['indoor_hostname=unavailable'] if ((indoor_hostname_value | default('unavailable')) == 'unavailable') else []) }}"
|
||||
changed_when: false
|
||||
|
||||
- name: Dev2 | indoor_hostname debug
|
||||
delegate_to: localhost
|
||||
debug:
|
||||
@@ -1521,6 +1590,41 @@
|
||||
payload_encoding: "string"
|
||||
changed_when: false
|
||||
|
||||
# ----------------------- Final journal: scan status -----------------------
|
||||
- name: Journal final scan status (success / partial / fail)
|
||||
delegate_to: localhost
|
||||
vars:
|
||||
_ok_n: "{{ (scan_ok | default([])) | length }}"
|
||||
_fail_n: "{{ (scan_fail | default([])) | length }}"
|
||||
_reason: "{{ (scan_fail | default([])) | join('; ') }}"
|
||||
_msg: >-
|
||||
{%- if (_fail_n | int) == 0 -%}
|
||||
scan was successful
|
||||
{%- elif (_ok_n | int) == 0 -%}
|
||||
scanning failed — {{ _reason }}
|
||||
{%- else -%}
|
||||
scan was completed partially — {{ _reason }}
|
||||
{%- endif -%}
|
||||
uri:
|
||||
url: "http://{{ rmq_host }}:{{ rmq_port }}/api/exchanges/{{ rmq_vhost | urlencode }}/{{ rmq_exchange | urlencode }}/publish"
|
||||
method: POST
|
||||
user: "{{ rmq_user }}"
|
||||
password: "{{ rmq_pass }}"
|
||||
force_basic_auth: true
|
||||
status_code: 200
|
||||
headers: { content-type: "application/json" }
|
||||
body_format: json
|
||||
body:
|
||||
properties: { content_type: "application/json" }
|
||||
routing_key: "{{ control_queue }}"
|
||||
payload: "{{ {
|
||||
'inscope_device': (ansible_hostname | default(inventory_hostname)),
|
||||
'task_name': 'journal_add',
|
||||
'task_result': _msg
|
||||
} | to_json }}"
|
||||
payload_encoding: "string"
|
||||
changed_when: false
|
||||
|
||||
post_tasks:
|
||||
- name: "✅ Cleanup start"
|
||||
debug:
|
||||
|
||||
Reference in New Issue
Block a user