Files
toallab-automation/roles/oatakan.ansible-role-ovirt/tasks/deprovision.yml

65 lines
1.7 KiB
YAML

---
- name: remove vms
ovirt_vm:
auth: "{{ ovirt_auth }}"
name: "{{ item }}"
cluster: "{{ providers.ovirt.cluster | default('Default') }}"
storage_domain: "{{ item.storage_domain | default(omit) }}"
state: absent
wait: yes
async: 7200
poll: 0
register: undeploy
loop: "{{ ansible_play_hosts | intersect(nodes | map(attribute='name') | list) }}"
when:
- nodes is defined
- hostvars[item].name is defined
- name: wait for vms to be deleted
async_status:
jid: "{{ item.ansible_job_id }}"
register: vm_remove
until: vm_remove.finished
retries: "{{ instance_wait_retry_limit }}"
delay: 10
loop: "{{ undeploy.results }}"
when:
- nodes is defined
- undeploy.results is defined
- item.ansible_job_id is defined
- name: delete additional disks
ovirt_disk:
auth: "{{ ovirt_auth }}"
name: "{% if item.1.name_prefix | default(true) %}{{ item.0.name }}_{% endif %}{{ item.1.name }}"
vm_name: "{{ item.0.name }}"
storage_domain: "{{ item.1.storage_domain | default(omit) }}"
state: absent
wait: no
async: 7200
poll: 0
register: delete_disks
with_subelements:
- "{{ nodes | json_query(query) }}"
- disks
- skip_missing: yes
when:
- nodes is defined
- item.1 is defined
- item.1.storage_domain is defined
vars:
query: "@[?contains(`{{ ansible_play_hosts }}`, name)]"
- name: wait for disk deletion to complete
async_status:
jid: "{{ item.ansible_job_id }}"
register: disks_deletion
until: disks_deletion.finished
retries: "{{ instance_wait_retry_limit }}"
delay: 10
loop: "{{ delete_disks.results }}"
when:
- nodes is defined
- delete_disks.results is defined
- item.ansible_job_id is defined