c5cc0b2b8892d6e6e0c533b330477274bd23087f
[releng/global-jjb.git] / shell / openstack-cleanup-orphaned-volumes.sh
1 #!/bin/bash -l
2 # SPDX-License-Identifier: EPL-1.0
3 ##############################################################################
4 # Copyright (c) 2018 The Linux Foundation and others.
5 #
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Eclipse Public License v1.0
8 # which accompanies this distribution, and is available at
9 # http://www.eclipse.org/legal/epl-v10.html
10 ##############################################################################
11 # Scans OpenStack for orphaned volumes
12 echo "---> Orphaned volumes"
13
14 os_cloud="${OS_CLOUD:-vex}"
15
16 set -eux -o pipefail
17
18 # shellcheck disable=SC1090
19 source ~/lf-env.sh
20 # Check if openstack venv was previously created
21 if [ -f "/tmp/.os_lf_venv" ]; then
22     os_lf_venv=$(cat "/tmp/.os_lf_venv")
23 fi
24
25 if [ -d "${os_lf_venv}" ] && [ -f "${os_lf_venv}/bin/openstack" ]; then
26     echo "Re-use existing venv: ${os_lf_venv}"
27     PATH=$os_lf_venv/bin:$PATH
28 else
29     lf-activate-venv --python python3 "cryptography<3.4" \
30         "lftools[openstack]" \
31         kubernetes \
32         "niet~=1.4.2" \
33         python-heatclient \
34         python-openstackclient \
35         python-magnumclient \
36         setuptools \
37         "openstacksdk<0.99" \
38         yq
39 fi
40 mapfile -t os_volumes < <(openstack --os-cloud "$os_cloud" volume list -f value -c ID --status Available)
41
42 if [ ${#os_volumes[@]} -eq 0 ]; then
43     echo "No orphaned volumes found."
44 else
45     for volume in "${os_volumes[@]}"; do
46         echo "Removing volume $volume"
47         lftools openstack --os-cloud "$os_cloud" volume remove --minutes 15 "$volume"
48     done
49 fi