45 lines
1.6 KiB
YAML
45 lines
1.6 KiB
YAML
# code: language=ansible
|
|
|
|
- name: Clean Synapse
|
|
hosts: localhost
|
|
connection: local
|
|
become: false
|
|
gather_facts: false
|
|
vars_prompt:
|
|
- name: "purge_ids_file"
|
|
prompt: "Enter the file name containing the purge ids"
|
|
private: false
|
|
tasks:
|
|
|
|
- name: Load purge ids
|
|
ansible.builtin.slurp:
|
|
src: "{{ playbook_dir }}/{{ purge_ids_file }}"
|
|
register: purge_ids
|
|
|
|
- name: Set purge_ids_list fact
|
|
ansible.builtin.set_fact:
|
|
purge_ids_list: "{{ purge_ids.content | b64decode | from_json }}"
|
|
|
|
- name: Get purge status
|
|
ansible.builtin.uri:
|
|
url: "https://{{ synapse_host_address }}/_synapse/admin/v2/rooms/delete_status/{{ item }}"
|
|
headers:
|
|
Authorization: "Bearer {{ synapse_admin_token }}"
|
|
loop: "{{ purge_ids_list }}"
|
|
register: purge_status
|
|
|
|
- name: Set purge_satus_totals
|
|
ansible.builtin.set_fact:
|
|
purge_status_shutting_down: "{{ purge_status.results | selectattr('json.status', '==', 'shutting_down') | list | length }}"
|
|
purge_status_purging: "{{ purge_status.results | selectattr('json.status', '==', 'purging') | list | length }}"
|
|
purge_status_complete: "{{ purge_status.results | selectattr('json.status', '==', 'complete') | list | length }}"
|
|
purge_status_failed: "{{ purge_status.results | selectattr('json.status', '==', 'failed') | list | length }}"
|
|
|
|
- name: Print status
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
Shutting down: {{ purge_status_shutting_down }}
|
|
Purging: {{ purge_status_purging }}
|
|
Complete: {{ purge_status_complete }}
|
|
Failed: {{ purge_status_failed }}"
|