# SPDX-FileCopyrightText: 2026 Slavi Pantaleev # # SPDX-License-Identifier: AGPL-3.0-or-later --- # Meowlnir's own database is the source of truth for which bots and management rooms exist, and it can be queried, so the playbook keeps no state of its own about them. - name: Ask Meowlnir which bots currently exist ansible.builtin.command: cmd: "{{ matrix_bot_meowlnir_bin_path }}/meowlnir-api GET /_meowlnir/v1/bots" register: matrix_bot_meowlnir_state_result changed_when: false failed_when: false - name: Fail if Meowlnir could not be asked which bots exist ansible.builtin.fail: msg: >- Could not read the list of bots from Meowlnir. Meowlnir said: {{ matrix_bot_meowlnir_state_result.stdout | default('') | trim }} {{ matrix_bot_meowlnir_state_result.stderr | default('') | trim }} when: >- matrix_bot_meowlnir_state_result.rc != 0 or (matrix_bot_meowlnir_state_result.stdout_lines | default([]) | length == 0) or (matrix_bot_meowlnir_state_result.stdout_lines | last != '200') - name: Determine which bots and management rooms Meowlnir knows about ansible.builtin.set_fact: matrix_bot_meowlnir_live_bots: "{{ (matrix_bot_meowlnir_state_result.stdout_lines[:-1] | join('\n') | from_json).bots | default([], true) }}"