From bd73d0e2a1b67d77948a7ad8af18bcdd3e8af07a Mon Sep 17 00:00:00 2001 From: pavel Date: Tue, 3 Mar 2026 08:49:46 +0200 Subject: [PATCH] 0849 --- .../update-outdoorbackup-scheduler.yml | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/files/ansible-playbooks/update-outdoorbackup-scheduler.yml b/files/ansible-playbooks/update-outdoorbackup-scheduler.yml index eab6a7b..8cc3bf5 100644 --- a/files/ansible-playbooks/update-outdoorbackup-scheduler.yml +++ b/files/ansible-playbooks/update-outdoorbackup-scheduler.yml @@ -95,3 +95,61 @@ - import_playbook: update-outdoorbackup224.yml vars: is_run_by: "scheduler" + +- name: Phase 4 | Scheduled success only | Chain sot-updater-scheduler + hosts: all + gather_facts: no + vars: + rmq_host: "{{ lookup('env','RMQ_HOST') | default('10.210.12.2', true) }}" + rmq_port: "{{ lookup('env','RMQ_PORT') | default('15672', true) }}" + rmq_user: "{{ lookup('env','RMQ_USER') | default('admin', true) }}" + rmq_pass: "{{ lookup('env','RMQ_PASS') | default('change_me', true) }}" + rmq_vhost: "{{ lookup('env','RMQ_VHOST') | default('app', true) }}" + rmq_exchange: "{{ lookup('env','RMQ_EXCHANGE') | default('controls', true) }}" + control_queue: "{{ lookup('env','CONTROLQUEUE') | default('queue_controls', true) }}" + tasks: + - name: Scheduled success | Set action_next to sot-updater-scheduler + when: + - hostvars[inventory_hostname].journal_success_payload is defined + - (hostvars[inventory_hostname].is_run_by_effective | default(hostvars[inventory_hostname].is_run_by | default('manual'))) == 'scheduler' + delegate_to: localhost + ansible.builtin.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': 'custom_field_set', 'task_add1': 'action_next', 'task_result': 'sot-updater-scheduler' } | to_json }}" + payload_encoding: "string" + changed_when: false + + - name: Scheduled success | Publish sot-updater-scheduler work message + when: + - hostvars[inventory_hostname].journal_success_payload is defined + - (hostvars[inventory_hostname].is_run_by_effective | default(hostvars[inventory_hostname].is_run_by | default('manual'))) == 'scheduler' + delegate_to: localhost + ansible.builtin.uri: + url: "http://{{ rmq_host }}:{{ rmq_port }}/api/exchanges/{{ rmq_vhost | urlencode }}/{{ 'deviceconfig' | 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: "deviceconfig" + payload: "{{ { 'inscope_device': (ansible_hostname | default(inventory_hostname)), 'task_name': 'sot-updater-scheduler' } | to_json }}" + payload_encoding: "string" + changed_when: false