#!/usr/bin/env bash

# **cleanup-nodes**

# Cleans up baremetal poseur nodes and volumes created during ironic setup
# Assumes calling user has proper libvirt group membership and access.

set -exu

LIBVIRT_STORAGE_POOL=${LIBVIRT_STORAGE_POOL:-"default"}
LIBVIRT_CONNECT_URI=${LIBVIRT_CONNECT_URI:-"qemu:///system"}

VM_COUNT=$1
NETWORK_BRIDGE=$2

export VIRSH_DEFAULT_CONNECT_URI=$LIBVIRT_CONNECT_URI

for (( idx=0; idx<$VM_COUNT; idx++ )); do
    NAME="baremetal${NETWORK_BRIDGE}_${idx}"
    VOL_NAME="baremetal${NETWORK_BRIDGE}-${idx}.qcow2"
    virsh list | grep -q $NAME && virsh destroy $NAME
    virsh list --inactive | grep -q $NAME && virsh undefine $NAME

    if virsh pool-list | grep -q $LIBVIRT_STORAGE_POOL ; then
      virsh vol-list $LIBVIRT_STORAGE_POOL | grep -q $VOL_NAME &&
          virsh vol-delete $VOL_NAME --pool $LIBVIRT_STORAGE_POOL
    fi
done
