diff --git a/ansible/roles/docker-registry/tasks/deploy.yml b/ansible/roles/docker-registry/tasks/deploy.yml index cc492dbb3..85fa5034d 100644 --- a/ansible/roles/docker-registry/tasks/deploy.yml +++ b/ansible/roles/docker-registry/tasks/deploy.yml @@ -8,6 +8,6 @@ read_only: "{{ item.value.read_only | default(omit) }}" restart_policy: "{{ docker_registry_restart_policy }}" restart_retries: "{{ docker_registry_restart_retries }}" - state: "{{ 'started' if item.value.enabled and action != 'destroy' | bool else 'absent' }}" + state: "{{ (item.value.enabled and action != 'destroy') | ternary('started', 'absent') }}" volumes: "{{ item.value.volumes }}" with_dict: "{{ docker_registry_services }}" diff --git a/ansible/roles/docker-registry/tasks/destroy.yml b/ansible/roles/docker-registry/tasks/destroy.yml deleted file mode 120000 index 0412f9220..000000000 --- a/ansible/roles/docker-registry/tasks/destroy.yml +++ /dev/null @@ -1 +0,0 @@ -deploy.yml \ No newline at end of file diff --git a/ansible/roles/docker-registry/tasks/destroy.yml b/ansible/roles/docker-registry/tasks/destroy.yml new file mode 100644 index 000000000..2f40ffc0e --- /dev/null +++ b/ansible/roles/docker-registry/tasks/destroy.yml @@ -0,0 +1,25 @@ +--- +- include: deploy.yml + +- name: Check whether docker registry volumes are present + command: docker volume inspect {{ volume }} + changed_when: False + with_subelements: + - "{{ docker_registry_services }}" + - volumes + when: "'/' not in volume" + failed_when: + - volume_result.rc != 0 + - "'No such volume' not in volume_result.stderr" + vars: + volume: "{{ item.1.split(':')[0] }}" + register: volume_result + +- name: Ensure docker registry volumes are absent + command: docker volume rm {{ volume }} + with_items: "{{ volume_result.results }}" + when: + - not item | skipped + - item.rc == 0 + vars: + volume: "{{ item.item.1.split(':')[0] }}" diff --git a/ansible/roles/opensm/tasks/deploy.yml b/ansible/roles/opensm/tasks/deploy.yml index 736cdcc8d..76607832b 100644 --- a/ansible/roles/opensm/tasks/deploy.yml +++ b/ansible/roles/opensm/tasks/deploy.yml @@ -8,6 +8,6 @@ read_only: "{{ item.value.read_only | default(omit) }}" restart_policy: "{{ opensm_restart_policy }}" restart_retries: "{{ opensm_restart_retries }}" - state: "{{ 'started' if item.value.enabled and action != 'destroy' | bool else 'absent' }}" + state: "{{ (item.value.enabled and action != 'destroy') | ternary('started', 'absent') }}" volumes: "{{ item.value.volumes }}" with_dict: "{{ opensm_services }}" diff --git a/ansible/roles/opensm/tasks/destroy.yml b/ansible/roles/opensm/tasks/destroy.yml deleted file mode 120000 index 0412f9220..000000000 --- a/ansible/roles/opensm/tasks/destroy.yml +++ /dev/null @@ -1 +0,0 @@ -deploy.yml \ No newline at end of file diff --git a/ansible/roles/opensm/tasks/destroy.yml b/ansible/roles/opensm/tasks/destroy.yml new file mode 100644 index 000000000..9be7f3e7a --- /dev/null +++ b/ansible/roles/opensm/tasks/destroy.yml @@ -0,0 +1,25 @@ +--- +- include: deploy.yml + +- name: Check whether OpenSM volumes are present + command: docker volume inspect {{ volume }} + changed_when: False + with_subelements: + - "{{ opensm_services }}" + - volumes + when: "'/' not in volume" + failed_when: + - volume_result.rc != 0 + - "'No such volume' not in volume_result.stderr" + vars: + volume: "{{ item.1.split(':')[0] }}" + register: volume_result + +- name: Ensure OpenSM volumes are absent + command: docker volume rm {{ volume }} + with_items: "{{ volume_result.results }}" + when: + - not item | skipped + - item.rc == 0 + vars: + volume: "{{ item.item.1.split(':')[0] }}"