Show diff when file: state=link changes the symlink target (#22243)

* Show diff when file: state=link changes the symlink target

* Integration test for symlink target change

* Also check soft link idempotency
This commit is contained in:
Marius Gedminas 2017-03-06 18:29:20 +02:00 committed by Brian Coca
parent 228131d1cd
commit 15c7288ab9
2 changed files with 22 additions and 0 deletions

View file

@ -392,6 +392,8 @@ def main():
elif prev_state == 'link': elif prev_state == 'link':
b_old_src = os.readlink(b_path) b_old_src = os.readlink(b_path)
if b_old_src != b_src: if b_old_src != b_src:
diff['before']['src'] = to_native(b_old_src, errors='strict')
diff['after']['src'] = src
changed = True changed = True
elif prev_state == 'hard': elif prev_state == 'hard':
if not (state == 'hard' and os.stat(b_path).st_ino == os.stat(b_src).st_ino): if not (state == 'hard' and os.stat(b_path).st_ino == os.stat(b_src).st_ino):

View file

@ -97,6 +97,26 @@
that: that:
- "file5_result.changed == true" - "file5_result.changed == true"
- name: change soft link to relative
file: src={{output_file|basename}} dest={{output_dir}}/soft.txt state=link
register: file5a_result
- name: verify that the file was marked as changed
assert:
that:
- "file5a_result.changed == true"
- "file5a_result.diff.before.src == output_file|expanduser"
- "file5a_result.diff.after.src == output_file|basename"
- name: soft link idempotency check
file: src={{output_file|basename}} dest={{output_dir}}/soft.txt state=link
register: file5b_result
- name: verify that the file was not marked as changed
assert:
that:
- "file5b_result.changed == false"
- name: create hard link to file - name: create hard link to file
file: src={{output_file}} dest={{output_dir}}/hard.txt state=hard file: src={{output_file}} dest={{output_dir}}/hard.txt state=hard
register: file6_result register: file6_result