summaryrefslogtreecommitdiffstats
path: root/ansible/roles/infra_destroy_previous_configuration/tasks/main.yml
blob: 6c4aa33cfd6b837a8f86aa3a608c0188b06ec385 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Copyright (c) 2017-2018 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
- name: Include input file
  include_vars:
    file: "{{ rs_file }}"
    name: infra_deploy_vars

- name: List virt-nets
  virt_net: command=list_nets
  register: virt_nets

- name: List VMs
  virt: command=list_vms
  register: virt_vms

- set_fact:
    deploy_vms: "{{ deploy_vms | default([]) + [item.hostname] }}"
  with_items: "{{ infra_deploy_vars.nodes }}"

- name: Define old disk images to delete
  shell: virsh domblklist {{ item }} | awk '/\/.*/ { print $2 }'
  when: clean_up | bool or item in deploy_vms
  with_items: "{{ virt_vms.list_vms }}"
  register: virt_img

- set_fact:
    images: "{{ images | default([]) + item.stdout_lines }}"
  when: item.stdout_lines is defined and item.stdout_lines | length > 0
  with_items: "{{ virt_img.results }}"

- name: Destroy old VMs
  include_tasks: delete_vm.yml
  loop_control:
    loop_var: vmhost_item
  with_items: "{{ virt_vms.list_vms }}"

- set_fact:
    deploy_nets: "{{ deploy_nets | default([]) + [item.name] }}"
  with_items: "{{ infra_deploy_vars.networks }}"

- name: Delete old networks
  include_tasks: delete_network.yml
  loop_control:
    loop_var: network_item
  with_items: "{{ virt_nets.list_nets }}"

- name: Delete old disk images
  file:
    path: "{{ item }}"
    state: absent
  when: images is defined and images | length > 0
  with_items: "{{ images }}"