108 lines
2.3 KiB
YAML
108 lines
2.3 KiB
YAML
|
---
|
||
|
- name: ensure idempotency installed
|
||
|
package:
|
||
|
name: patch
|
||
|
when: ansible_distribution != "MacOSX"
|
||
|
|
||
|
- name: create a directory for the result
|
||
|
file:
|
||
|
dest: "{{ output_dir }}/patch"
|
||
|
state: directory
|
||
|
register: result
|
||
|
|
||
|
- name: assert the directory was created
|
||
|
assert:
|
||
|
that:
|
||
|
- "result.state == 'directory'"
|
||
|
|
||
|
- name: copy the origin file
|
||
|
copy:
|
||
|
src: "./origin.txt"
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
register: result
|
||
|
|
||
|
- name: patch the origin file in check mode
|
||
|
patch:
|
||
|
src: result.patch
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
check_mode: yes
|
||
|
register: result
|
||
|
|
||
|
- name: verify patch the origin file in check mode
|
||
|
assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
|
||
|
- name: patch the origin file
|
||
|
patch:
|
||
|
src: result.patch
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
register: result
|
||
|
|
||
|
- name: verify patch the origin file
|
||
|
assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
|
||
|
- name: test patch the origin file idempotency
|
||
|
patch:
|
||
|
src: result.patch
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
register: result
|
||
|
|
||
|
- name: verify test patch the origin file idempotency
|
||
|
assert:
|
||
|
that:
|
||
|
- result is not changed
|
||
|
|
||
|
- name: verify the resulted file matches expectations
|
||
|
copy:
|
||
|
src: "./result.txt"
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
register: result
|
||
|
failed_when: result is changed
|
||
|
|
||
|
- name: patch the workfile file in check mode state absent
|
||
|
patch:
|
||
|
src: result.patch
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
state: absent
|
||
|
check_mode: yes
|
||
|
register: result
|
||
|
|
||
|
- name: verify patch the workfile file in check mode state absent
|
||
|
assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
|
||
|
- name: patch the workfile file state absent
|
||
|
patch:
|
||
|
src: result.patch
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
state: absent
|
||
|
register: result
|
||
|
|
||
|
- name: verify patch the workfile file state absent
|
||
|
assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
|
||
|
- name: patch the workfile file state absent idempotency
|
||
|
patch:
|
||
|
src: result.patch
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
state: absent
|
||
|
register: result
|
||
|
|
||
|
- name: verify patch the workfile file state absent idempotency
|
||
|
assert:
|
||
|
that:
|
||
|
- result is not changed
|
||
|
|
||
|
- name: verify the resulted file matches expectations
|
||
|
copy:
|
||
|
src: "./origin.txt"
|
||
|
dest: "{{ output_dir }}/patch/workfile.txt"
|
||
|
register: result
|
||
|
failed_when: result is changed
|