feat: adding 2.2.3-r9800 2234
This commit is contained in:
@@ -25,8 +25,6 @@
|
||||
target_version_full: ""
|
||||
schema_version: 1
|
||||
|
||||
|
||||
|
||||
# Probing/SSH defaults
|
||||
tcp_port: 22
|
||||
nc_timeout: 5
|
||||
@@ -37,6 +35,9 @@
|
||||
# Do NOT self-reference max_attempts. We’ll normalize below.
|
||||
max_attempts_default: 3
|
||||
|
||||
# --- Hardcoded cloud API bearer (per request) ---
|
||||
cloud_api_bearer: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InBhdmVsLmxAOGRldmljZXMuY29tIiwic3ViIjoyMiwiaWF0IjoxNzU5NzMxMzk1LCJleHAiOjE3NjIzMjMzOTV9.C7XV-QHIsLPZTxavv1eU361p0KTpiEPfDv3AUTmAqG8"
|
||||
|
||||
tasks:
|
||||
# ---- Normalize metadata safely (no self-referential defaults) ----
|
||||
- name: Normalize metadata (no clever transforms)
|
||||
@@ -139,7 +140,6 @@
|
||||
ansible.builtin.set_fact:
|
||||
version_match: "{{ (target_version_effective | length > 0) and (target_version_effective in (banner_probe.stdout | default(''))) }}"
|
||||
|
||||
|
||||
# ---- Read eth0 MAC (only after confirmed version match) ----
|
||||
- name: Read eth0 MAC address via SSH
|
||||
when: nc_probe.rc == 0 and banner_probe.rc == 0 and (version_match | bool)
|
||||
@@ -166,6 +166,38 @@
|
||||
ansible.builtin.debug:
|
||||
msg: "eth0_macaddress={{ eth0_macaddress }}"
|
||||
|
||||
# ---- Cloud bandwidth-control PATCH (only after match & MAC present) ----
|
||||
- name: Build URL-encoded MAC for cloud API
|
||||
when: eth0_macaddress is defined and (version_match | bool) and nc_probe.rc == 0 and banner_probe.rc == 0
|
||||
ansible.builtin.set_fact:
|
||||
enc_mac: "{{ eth0_macaddress | regex_replace(':', '%3A') }}"
|
||||
|
||||
- name: PATCH bandwidth-control in cloud (egress 40 / ingress 10)
|
||||
when: enc_mac is defined and (version_match | bool) and nc_probe.rc == 0 and banner_probe.rc == 0
|
||||
delegate_to: localhost
|
||||
ansible.builtin.shell: |
|
||||
set -e
|
||||
curl -sS -L --request PATCH --post301 --post302 \
|
||||
"https://cloud.ikeja.co.za/v1/external/devices/{{ enc_mac }}/bandwidth-control" \
|
||||
--header "Authorization: Bearer {{ cloud_api_bearer }}" \
|
||||
--header "Content-Type: application/json" \
|
||||
--header "Accept: application/json" \
|
||||
--fail-with-body \
|
||||
--data '{"egress":{"isEnabled":true,"speedMbps":40},"ingress":{"isEnabled":true,"speedMbps":10}}'
|
||||
register: cloud_patch
|
||||
changed_when: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: Flag cloud change result
|
||||
when: enc_mac is defined and (version_match | bool) and nc_probe.rc == 0 and banner_probe.rc == 0
|
||||
ansible.builtin.set_fact:
|
||||
cloud_change_ok: "{{ (cloud_patch is defined and (cloud_patch.rc | default(1)) == 0) }}"
|
||||
|
||||
- name: Debug cloud change result
|
||||
when: cloud_change_ok is defined
|
||||
ansible.builtin.debug:
|
||||
msg: "cloud_change={{ 'Ok' if cloud_change_ok else 'NOT ok' }}"
|
||||
|
||||
# ---- Journaling paths ----
|
||||
# Success: banner matches expected full target_version
|
||||
- name: Build success journal payload
|
||||
@@ -179,6 +211,7 @@
|
||||
afterupgrade_check SUCCESS (attempt {{ attempt }}/{{ effective_max_attempts }}):
|
||||
Banner='{{ (banner_probe.stdout | default('') | trim) }}' Target='{{ target_version_effective }}'
|
||||
Correlation={{ correlation_id }} Original={{ original_emitted_at }}
|
||||
{{ 'cloud change Ok' if (cloud_change_ok | default(false)) else 'cloud change NOT ok' }}
|
||||
|
||||
- name: Publish success journal to control queue
|
||||
when: journal_success_payload is defined
|
||||
|
||||
Reference in New Issue
Block a user