_check_extension_via_groovy.ymlΒΆ

---
# PUT a temporary Groovy page that checks installed extensions, call it, then delete it.

- name: "⬇️ XWIKI | Fetch REST session + form token (extension check write ops)"
  include_tasks: utils/rest_session.yml

- name: "⬆️ XWIKI | PUT checker page XWiki.CheckExtension"
  uri_retry:
    url: "{{ [XWIKI_REST_XWIKI_PAGES, 'CheckExtension'] | url_join }}"
    method: PUT
    url_username: "{{ XWIKI_SUPERADMIN_USERNAME }}"
    url_password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
    force_basic_auth: true
    status_code: [200, 201, 202, 204]
    headers: "{{ xwiki_rest_headers_write }}"
    body: "{{ lookup('file', 'xml/check_extension_page.xml') }}"
  register: _put_checker
  changed_when: false

- name: "πŸ”Ž XWIKI | Check installed via Groovy for {{ ext_id }}"
  uri_retry:
    url: "{{ XWIKI_DOCKER_REACH_URL }}/bin/view/XWiki/CheckExtension?xpage=plain&id={{ ext_id | urlencode }}"
    method: GET
    url_username: "{{ XWIKI_SUPERADMIN_USERNAME }}"
    url_password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
    force_basic_auth: true
    status_code: [200]
    return_content: true
  register: _check_output
  changed_when: false

- name: "πŸ’Ύ XWIKI | Save Groovy check result for {{ ext_id }}"
  set_fact:
    "{{ result_var }}":
      status: "{{ _check_output.content | xwiki_extension_status(ext_version) }}"
      raw: "{{ _check_output.content }}"

- name: "πŸ—‘οΈ XWIKI | Delete checker page"
  uri_retry:
    url: "{{ [XWIKI_REST_XWIKI_PAGES, 'CheckExtension'] | url_join }}"
    method: DELETE
    url_username: "{{ XWIKI_SUPERADMIN_USERNAME }}"
    url_password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
    force_basic_auth: true
    status_code: [204, 200, 202, 404]
    headers: "{{ xwiki_rest_headers_write }}"
  register: _delete_checker
  changed_when: _delete_checker.status != 404