summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/template/tasks/backup_test.yml
blob: eb4eff1700cfc9c24b7aea86ee2f91f853d78a5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# https://github.com/ansible/ansible/issues/24408

- set_fact:
    t_username: templateuser1
    t_groupname: templateuser1

- name: create the test group
  group:
    name: "{{ t_groupname }}"

- name: create the test user
  user:
    name: "{{ t_username }}"
    group: "{{ t_groupname }}"
    createhome: no

- name: set the dest file
  set_fact:
      t_dest: "{{ output_dir + '/tfile_dest.txt' }}"

- name: create the old file
  file:
    path: "{{ t_dest }}"
    state: touch
    mode: 0777
    owner: "{{ t_username }}"
    group: "{{ t_groupname }}"

- name: failsafe attr change incase underlying system does not support it
  shell: chattr =j "{{ t_dest }}"
  ignore_errors: True

- name: run the template
  template:
    src: foo.j2
    dest: "{{ t_dest }}"
    backup: True
  register: t_backup_res

- name: check the data for the backup
  stat:
    path: "{{ t_backup_res.backup_file }}"
  register: t_backup_stats

- name: validate result of preserved backup
  assert:
      that:
          - 't_backup_stats.stat.mode == "0777"'
          - 't_backup_stats.stat.pw_name == t_username'
          - 't_backup_stats.stat.gr_name == t_groupname'

- name: cleanup the user
  user:
    name: "{{ t_username }}"
    state: absent

- name: cleanup the group
  user:
    name: "{{ t_groupname }}"
    state: absent