mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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
|