blob: d9e49b9c3866da6054e3c2d1819c5092d10c8d74 [file] [log] [blame]
#!/bin/bash
# ============LICENSE_START=======================================================
# Copyright (C) 2020 The Nordix Foundation. All rights reserved.
# ================================================================================
# 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.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
set -o nounset
set -o errexit
set -o pipefail
# prepare venv for openstack cli
/bin/rm -rf $WORKSPACE/.venv
virtualenv --python python3 --never-download $WORKSPACE/.venv
set +u
source $WORKSPACE/.venv
set -u
pip install --quiet --upgrade pip
pip install --quiet python-cinderclient==6.0.0
pip install --quiet python-glanceclient==3.0.0
pip install --quiet python-heatclient==2.0.0
pip install --quiet python-ironic-inspector-client==4.0.0
pip install --quiet python-ironicclient==4.0.0
pip install --quiet python-keystoneclient==3.22.0
pip install --quiet python-neutronclient==7.1.0
pip install --quiet python-novaclient==16.0.0
pip install --quiet python-openstackclient==5.1.0
pip install --quiet python-swiftclient==3.9.0
echo "Info: Find Stacks $STACK_START_STR and keypair keypair-$STACK_START_STR"
echo "-------------------------------------------------------------------------"
source $OPENRC_FILE
STACKS=$(openstack stack list -c "Stack Name" -c "Creation Time" -c ID -f value)
KEYPAIRS=$(openstack keypair list -c "Name" -f value)
# iternate of all the stacks
while IFS= read -r stackline
do
# split line which comes in order ID,"Stack Name","Creation Time"
stackdetails=($stackline)
# find stacks starting with the search string
if [[ ${stackdetails[1]} =~ ^$STACK_START_STR.* ]]
then
whenstackcreated=$(date -d ${stackdetails[2]} +%s)
nowinsecond=$(date +%s)
ageofstack=$(($nowinsecond-$whenstackcreated))
# find stacks older than the allowed time
if [[ $ageofstack > $TIMETOLIVE*60 ]]
then
echo "Info: Going to delete stack " ${stackdetails[1]} " ID " ${stackdetails[0]}
openstack stack delete ${stackdetails[0]} --wait --yes
echo "Info: Deleted stack " ${stackdetails[1]} " ID " ${stackdetails[0]}
# check keypair is there before trying to delete
if [[ "${KEYPAIRS[@]}" =~ "keypair-${stackdetails[1]}" ]]; then
echo "Info: Going to delete keypair " keypair-${stackdetails[1]}
openstack keypair delete keypair-${stackdetails[1]}
echo "Info: Deleted keypair " keypair-${stackdetails[1]}
fi
fi
fi
done <<< $(echo "$STACKS")
echo "-------------------------------------------------------------------------"
echo "Info: Finished deleting stacks and keypairs"
deactivate
# vim: set ts=2 sw=2 expandtab: