diff --git a/files/ansible-playbooks/sot-updater.yml b/files/ansible-playbooks/sot-updater.yml index fe20a16..2089e90 100644 --- a/files/ansible-playbooks/sot-updater.yml +++ b/files/ansible-playbooks/sot-updater.yml @@ -185,6 +185,11 @@ - "IP changed: {{ nb_ip_changed|default(false) }}" - "Reason: {{ nb_change_reason|default('none') }}" + - name: "NB preflight | Compute next_attempt" + delegate_to: localhost + set_fact: + next_attempt: "{{ (requeue_attempt | int) + 1 }}" + # --- Requeue control: only 3 attempts, 300s apart --- - name: "NB preflight | Publish delayed requeue (300s) if needed" when: @@ -205,12 +210,12 @@ body: properties: content_type: "application/json" - headers: { x-delay: 300000 } # 300 seconds = 5 minutes + headers: { x-delay: 300000 } routing_key: "deviceconfig" payload: "{{ { 'inscope_device': (ansible_hostname | default(inventory_hostname)), 'task_name': 'sot-updater', - 'attempt': ((requeue_attempt | int) + 1) + 'attempt': next_attempt } | to_json }}" payload_encoding: "string" register: rmq_requeue @@ -225,7 +230,7 @@ delegate_to: localhost debug: msg: - - "Requeue published (attempt {{ requeue_attempt+1 }})" + - "Requeue published (attempt {{ (requeue_attempt | int) + 1 }})" - "HTTP: {{ rmq_requeue.status|default('n/a') }}" - "JSON: {{ rmq_requeue.json|default('') }}"