Every `occ config:app:set` / `ldap:set-config` / `notify_push:setup` call previously fired on every play, marking changed even when the stored value already matched. Now we read the current value first and only invoke the setter when it differs: * richdocuments (collabora): pre-read wopi_url, public_wopi_url, disable_certificate_verification, wopi_allowlist into a fact map; guard each `config:app:set` and tag `richdocuments:activate-config` with `changed_when: false` since it's a discovery refresh. * drawio: same pattern for DrawioUrl, DrawioTheme, DrawioOffline, comparing as strings (occ stores booleans as "1"/"0"). * user_ldap: pre-read `ldap:show-config s01 --output=json`, parse JSON defensively (occ logs interleave on stderr), and skip per-key `ldap:set-config` calls when the stored value already equals the desired one. * notify_push: skip `notify_push:setup` when the stored base_endpoint already matches the computed URL. * plugins: `app:install`/`app:enable` were treating "already installed/ enabled" output as a change. Add the negative match to `changed_when` so re-runs of a fully-provisioned site report ok rather than changed.
42 lines
No EOL
1.7 KiB
YAML
42 lines
No EOL
1.7 KiB
YAML
#SPDX-License-Identifier: MIT-0
|
|
---
|
|
# tasks file for configuring draw.io in Nextcloud
|
|
|
|
- name: Read current drawio config values
|
|
community.docker.docker_container_exec:
|
|
container: "{{ nextcloud_docker_compose_dir | basename }}-nextcloud-1"
|
|
command: php /var/www/html/occ config:app:get drawio {{ item }}
|
|
loop:
|
|
- DrawioUrl
|
|
- DrawioTheme
|
|
- DrawioOffline
|
|
register: _drawio_current
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Build map of current drawio config
|
|
ansible.builtin.set_fact:
|
|
_drawio_cfg: "{{ _drawio_cfg | default({}) | combine({item.item: (item.stdout | default('')).strip()}) }}"
|
|
loop: "{{ _drawio_current.results }}"
|
|
loop_control:
|
|
label: "{{ item.item }}"
|
|
|
|
- name: Configure draw.io URL
|
|
community.docker.docker_container_exec:
|
|
container: "{{ nextcloud_docker_compose_dir | basename }}-nextcloud-1"
|
|
command: php /var/www/html/occ config:app:set drawio DrawioUrl --value={{ nextcloud_drawio_url }}
|
|
when:
|
|
- nextcloud_drawio_url | length > 0
|
|
- _drawio_cfg.DrawioUrl != nextcloud_drawio_url
|
|
|
|
- name: Configure draw.io theme
|
|
community.docker.docker_container_exec:
|
|
container: "{{ nextcloud_docker_compose_dir | basename }}-nextcloud-1"
|
|
command: php /var/www/html/occ config:app:set drawio DrawioTheme --value={{ nextcloud_drawio_theme }}
|
|
when: _drawio_cfg.DrawioTheme != (nextcloud_drawio_theme | string)
|
|
|
|
- name: Configure draw.io offline mode
|
|
community.docker.docker_container_exec:
|
|
container: "{{ nextcloud_docker_compose_dir | basename }}-nextcloud-1"
|
|
command: php /var/www/html/occ config:app:set drawio DrawioOffline --value={{ nextcloud_drawio_offline }}
|
|
when: _drawio_cfg.DrawioOffline != (nextcloud_drawio_offline | string) |