diff --git a/tasks/general/tests/lock_check.yml b/tasks/general/tests/lock_check.yml new file mode 100644 index 0000000..1128d03 --- /dev/null +++ b/tasks/general/tests/lock_check.yml @@ -0,0 +1,16 @@ +--- +# 20260929 - Hyperling +# Ensure an existing run is not active, otherwise bail. + +- name: General | Tests | Existing Run | Facts + set_fact: + lock_file: "/tmp/ansible-playbook.lock" + +- name: General | Tests | Existing Run | Check + stat: + path: "{{ lock_file }}" + register: lock_exists + +- name: General | Tests | Existing Run | Exit + meta: end_play + when: lock_exists.stat.exists diff --git a/tasks/general/tests/lock_create.yml b/tasks/general/tests/lock_create.yml new file mode 100644 index 0000000..4819552 --- /dev/null +++ b/tasks/general/tests/lock_create.yml @@ -0,0 +1,22 @@ +--- +# 20260929 - Hyperling +# Ensure an existing run is not active, otherwise bail. + +- name: General | Tests | Existing Run | Lock | Create + shell: "date +'%Y-%m-%d %H:%M:%S' >> {{lock_file }}" + + +- name: General | Tests | Existing Run | Lock | Create + file: + name: "{{ lock_file }}" + mode: '0777' + +- name: General | Tests | Existing Run | Lock | Create | Check + stat: + path: "{{ lock_file }}" + register: lock_exists + +- name: General | Tests | Existing Run | Lock | Create | Fail + fail: + msg: "ERROR: Lock file does not exist." + when: not lock_exists.stat.exists diff --git a/tasks/general/tests/lock_remove.yml b/tasks/general/tests/lock_remove.yml new file mode 100644 index 0000000..f9632f9 --- /dev/null +++ b/tasks/general/tests/lock_remove.yml @@ -0,0 +1,18 @@ +--- +# 20260929 - Hyperling +# Ensure an existing run is not active, otherwise bail. + +- name: General | Tests | Existing Run | Lock | Remove + file: + name: "{{ lock_file }}" + state: absent + +- name: General | Tests | Existing Run | Lock | Remove | Check + stat: + path: "{{ lock_file }}" + register: lock_exists + +- name: General | Tests | Existing Run | Lock | Remove | Fail + fail: + msg: "ERROR: Lock file still exists!" + when: lock_exists.stat.exists