---
- name: Update Open WebUI on Backend Server
  hosts: ai-backend
  become: true
  vars:
    venv_path: "/opt/open-webui"
    service_name: "open-webui"

  tasks:
    - name: Stop Open WebUI service before update
      ansible.builtin.systemd_service:
        name: "{{ service_name }}"
        state: stopped

    - name: Upgrade open-webui package inside virtualenv
      ansible.builtin.pip:
        name: open-webui
        state: latest
        virtualenv: "{{ venv_path }}"

    - name: Start Open WebUI service after update
      ansible.builtin.systemd_service:
        name: "{{ service_name }}"
        state: started
        enabled: true

    - name: Get Open WebUI service status
      ansible.builtin.systemd_service:
        name: "{{ service_name }}"
      register: service_status

    - name: Verify that service is active
      ansible.builtin.assert:
        that:
          - service_status.status.ActiveState == 'active'
        fail_msg: "ALERT! Open WebUI service failed to start! Current state: {{ service_status.status.ActiveState }}"
        success_msg: "SUCCESS! Open WebUI service is active and running."