blob: 4335b821e9619d0cb97c200864dbe3dbacb5d787 (
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#!/usr/bin/env bash
##############################################################################
# Copyright (c) 2015 Tim Rozet (Red Hat), Dan Radez (Red Hat) and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
#Clean script to uninstall provisioning server for Apex
#author: Dan Radez (dradez@redhat.com)
#author: Tim Rozet (trozet@redhat.com)
# Use default if no param passed
BASE=${BASE:-'/var/opt/opnfv'}
IMAGES=${IMAGES:-"$BASE/images"}
LIB=${LIB:-"$BASE/lib"}
reset=$(tput sgr0 || echo "")
blue=$(tput setaf 4 || echo "")
red=$(tput setaf 1 || echo "")
green=$(tput setaf 2 || echo "")
##LIBRARIES
for lib in common-functions parse-functions; do
if ! source $LIB/${lib}.sh; then
echo "Failed to source $LIB/${lib}.sh"
exit 1
fi
done
vm_index=4
ovs_bridges="br-admin br-tenant br-external br-storage"
ovs_bridges+=" br-private br-public" # Legacy names, remove in E river
#OPNFV_NETWORK_TYPES=$(python3 -c 'from apex.common.constants import OPNFV_NETWORK_TYPES; print(" ".join(OPNFV_NETWORK_TYPES))')
OPNFV_NETWORK_TYPES+=" admin tenant external storage api"
OPNFV_NETWORK_TYPES+=" admin_network private_network public_network storage_network api_network" # Legecy names, remove in E river
display_usage() {
echo -e "Usage:\n$0 [arguments] \n"
echo -e " -i|--inventory : Full path to inventory yaml file. Required only for baremetal node clean"
}
##translates the command line parameters into variables
##params: $@ the entire command line is passed
##usage: parse_cmd_line() "$@"
parse_cmdline() {
echo -e "\n\n${blue}This script is used to deploy the Apex Installer and Provision OPNFV Target System${reset}\n\n"
echo "Use -h to display help"
sleep 2
while [ "${1:0:1}" = "-" ]
do
case "$1" in
-h|--help)
display_usage
exit 0
;;
-i|--inventory)
INVENTORY_FILE=$2
shift 2
;;
*)
display_usage
exit 1
;;
esac
done
if [[ ! -z "$INVENTORY_FILE" && ! -f "$INVENTORY_FILE" ]]; then
echo -e "{$red}ERROR: Inventory File: ${INVENTORY_FILE} does not exist! Exiting...${reset}"
exit 1
fi
}
parse_cmdline "$@"
if [ -n "$INVENTORY_FILE" ]; then
echo -e "${blue}INFO: Parsing inventory file...${reset}"
if ! python3 -B $LIB/python/apex_python_utils.py clean -f ${INVENTORY_FILE}; then
echo -e "${red}WARN: Unable to shutdown all nodes! Please check /var/log/apex.log${reset}"
else
echo -e "${blue}INFO: Node shutdown complete...${reset}"
fi
fi
# Clean off instack/undercloud VM
for vm in instack undercloud; do
virsh destroy $vm 2> /dev/null | xargs echo -n
virsh undefine $vm 2> /dev/null | xargs echo -n
/usr/bin/touch /var/lib/libvirt/images/${vm}.qcow2
virsh vol-delete ${vm}.qcow2 --pool default 2> /dev/null | xargs echo -n
rm -f /var/lib/libvirt/images/${vm}.qcow2 2> /dev/null
done
# Clean off baremetal VMs in case they exist
for i in $(seq 0 $vm_index); do
virsh destroy baremetal$i 2> /dev/null | xargs echo -n
virsh undefine baremetal$i 2> /dev/null | xargs echo -n
/usr/bin/touch /var/lib/libvirt/images/baremetal${i}.qcow2
virsh vol-delete baremetal${i}.qcow2 --pool default 2> /dev/null | xargs echo -n
rm -f /var/lib/libvirt/images/baremetal${i}.qcow2 2> /dev/null
done
for network in ${OPNFV_NETWORK_TYPES}; do
virsh net-destroy ${network} 2> /dev/null
virsh net-undefine ${network} 2> /dev/null
done
# Clean off created bridges
for bridge in ${ovs_bridges}; do
if detach_interface_from_ovs ${bridge} 2> /dev/null; then
ovs-vsctl del-br ${bridge} 2> /dev/null
rm -f /etc/sysconfig/network-scripts/ifcfg-${bridge}
fi
done
# clean pub keys from root's auth keys
sed -i '/stack@undercloud.localdomain/d' /root/.ssh/authorized_keys
sed -i '/virtual-power-key/d' /root/.ssh/authorized_keys
# force storage cleanup
virsh pool-refresh default
# remove temporary files
rm -f /tmp/network-environment.yaml
echo "Cleanup Completed"
|