mirror of https://github.com/ansible/ansible.git
[WIP] Create preserved_copy function in basic.py to perserve file ownership. (#27344)
Create preserved_copy function in basic.py to perserve file ownership. * Add a test for template preserved backup * Use a script to get the random names * bytes to strings * Remove dump of hostvars * Stop being fancy and create a testuser instead * Fix pep8 * set file attributes * Pass the correct data to set_attributes_if_different * Use -j instead -b and pass the attributes as a string instead of a list * remove debugging message * Use shell to softly set the attr Fixes #24408pull/20902/head
parent
b266204afa
commit
baf1ed9100
@ -0,0 +1,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
|
||||
Loading…
Reference in New Issue