--- - name: Fail if required Nextcloud settings not defined ansible.builtin.fail: msg: >- You need to define a required configuration setting (`{{ item }}`) for using this role. when: "vars[item] == ''" with_items: - nextcloud_hostname - nextcloud_uid - nextcloud_gid - nextcloud_database_hostname - nextcloud_database_name - nextcloud_database_username - nextcloud_database_password - name: Fail if deprecated Nextcloud settings are still defined ansible.builtin.fail: msg: >- You need to drop setting (`{{ item }}`) as it is not used anymore in the Nextcloud role. when: "item in vars" with_items: - nextcloud_preview_squareSizes - nextcloud_preview_widthSizes - nextcloud_preview_heightSizes - nextcloud_preview_system_jpeg_quality - name: (Deprecation) Catch and report renamed Nextcloud variables ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). when: "vars | dict2items | selectattr('key', item.comparison, item.old) | list | items2dict" with_items: - {'comparison': 'equalto', 'old': 'nextcloud_container_image_customizations_php_imageick_installation_enabled', 'new': 'nextcloud_container_image_customizations_php_imagick_installation_enabled'} - {'comparison': 'equalto', 'old': 'nextcloud_container_image_customizations_php_imageick_installation_package', 'new': ''} - when: nextcloud_container_labels_traefik_enabled | bool block: - name: Fail if required Nextcloud Traefik settings not defined ansible.builtin.fail: msg: >- You need to define a required configuration setting (`{{ item }}`). when: "vars[item] == ''" with_items: - nextcloud_container_labels_traefik_hostname - nextcloud_container_labels_traefik_path_prefix # We ensure it doesn't end with a slash, because we handle both (slash and no-slash). # Knowing that `nextcloud_container_labels_traefik_path_prefix` does not end with a slash # ensures we know how to set these routes up without having to do "does it end with a slash" checks elsewhere. - name: Fail if nextcloud_container_labels_traefik_path_prefix ends with a slash ansible.builtin.fail: msg: >- nextcloud_container_labels_traefik_path_prefix (`{{ nextcloud_container_labels_traefik_path_prefix }}`) must either be `/` or not end with a slash (e.g. `/nextcloud`). when: "nextcloud_container_labels_traefik_path_prefix != '/' and nextcloud_container_labels_traefik_path_prefix[-1] == '/'"