X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ci%2Fclean.sh;h=fba1f12674893fb08f77ff3577f03718f781f895;hb=55e3a45da905d5c23079d693d8dd0f7a5fd5c553;hp=dc76f323f5f540ca07894bf3972aaa11d7d11241;hpb=40d7cd35fd1106235459ac872db1be5a158b3a5e;p=apex.git diff --git a/ci/clean.sh b/ci/clean.sh index dc76f323..fba1f126 100755 --- a/ci/clean.sh +++ b/ci/clean.sh @@ -13,18 +13,83 @@ #author: Tim Rozet (trozet@redhat.com) # Use default if no param passed -CONFIG=${1-"/var/opt/opnfv"} +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 -source $CONFIG/lib/common-functions.sh +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-private br-public br-storage" +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 + virsh undefine --nvram $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 @@ -37,23 +102,30 @@ for i in $(seq 0 $vm_index); do /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 + if [ -e /root/.vbmc/baremetal$i ]; then vbmc delete baremetal$i; fi +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 - virsh net-destroy ${bridge} 2> /dev/null | xargs echo -n - virsh net-undefine ${bridge} 2> /dev/null | xargs echo -n 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"