mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-03-26 21:33:05 +00:00
ipabackup: Fix order of ipabackup_name parameter evaluation.
When performing a backup with 'state:present', if 'ipabackup_name' is provided, the backup will be performed, but the role with return an error since 'ipabackup_name' should not be set for this state. This patch moves the parameter evaluation to be performed before the actual backup is performed, so that the backup is not performed and an error is reported.
This commit is contained in:
@@ -26,6 +26,12 @@
|
||||
fail: msg="ipabackup_from_controller and ipabackup_to_controller are set"
|
||||
when: ipabackup_from_controller | bool and ipabackup_to_controller | bool
|
||||
|
||||
- name: Fail for given ipabackup_name if state is not copied, restored or absent
|
||||
fail: msg="ipabackup_name is given and state is not copied, restored or absent"
|
||||
when: state is not defined or
|
||||
(state != "copied" and state != "restored" and state != "absent") and
|
||||
ipabackup_name is defined
|
||||
|
||||
- name: Get ipabackup_dir from IPA installation
|
||||
include_tasks: "{{ role_path }}/tasks/get_ipabackup_dir.yml"
|
||||
|
||||
@@ -33,12 +39,6 @@
|
||||
include_tasks: "{{ role_path }}/tasks/backup.yml"
|
||||
when: state|default("present") == "present"
|
||||
|
||||
- name: Fail for given ipabackup_name if state is not copied, restored or absent
|
||||
fail: msg="ipabackup_name is given and state is not copied, restored or absent"
|
||||
when: state is not defined or
|
||||
(state != "copied" and state != "restored" and state != "absent") and
|
||||
ipabackup_name is defined
|
||||
|
||||
- name: Fail on missing ipabackup_name
|
||||
fail: msg="ipabackup_name is not set"
|
||||
when: (ipabackup_name is not defined or not ipabackup_name) and
|
||||
|
||||
@@ -383,6 +383,31 @@
|
||||
loop_var: server_backup_data
|
||||
label: server_backup_data.path
|
||||
|
||||
# Test issue #900
|
||||
- name: Remove all backup from server.
|
||||
ansible.builtin.include_role:
|
||||
name: ipabackup
|
||||
vars:
|
||||
state: absent
|
||||
ipabackup_name: all
|
||||
|
||||
- name: Test issue 900 fix.
|
||||
block:
|
||||
- name: Invalid role configuration that should not produce a backup on the server.
|
||||
ansible.builtin.include_role:
|
||||
name: ipabackup
|
||||
vars:
|
||||
state: present
|
||||
ipabackup_name: this_must_fail
|
||||
rescue:
|
||||
- name: List all existing backups on server
|
||||
ansible.builtin.find:
|
||||
path: /var/lib/ipa/backup
|
||||
recurse: no
|
||||
file_type: directory
|
||||
register: server_backups
|
||||
failed_when: server_backups.files
|
||||
|
||||
# CLEANUP
|
||||
|
||||
- name: List all existing backups on controller
|
||||
|
||||
Reference in New Issue
Block a user