d5fe8a30f9
Currently, when there are some qemu processes which may be some useful virtual machines running by the operator running on non compute node, the cleanup script will fail the cleanup operation for that node. We need to ignore the qemu process check for non compute nodes. Change-Id: If49a1a30764063935b2a65312de8f3b2357c7fbc Closes-bug: 1633005
29 lines
992 B
Bash
Executable File
29 lines
992 B
Bash
Executable File
#!/bin/bash
|
|
if [[ $COMPUTE ]] && [[ $(pgrep qemu) ]]; then
|
|
echo "Some qemu processes were detected."
|
|
echo "Docker will not be able to stop the nova_libvirt container with those running."
|
|
echo "Please clean them up before rerunning this script."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -n "$1" ]; then
|
|
containers_to_kill=($(docker ps | grep -E "$1" | awk '{print $1}'))
|
|
volumes_to_remove=($(docker volume ls | grep -E "$1" | awk '{print $1}'))
|
|
else
|
|
containers_to_kill=$(docker ps --filter "label=kolla_version" --format "{{.Names}}" -a)
|
|
|
|
volumes_to_remove=$(docker inspect -f '{{range .Mounts}} {{printf "%s\n" .Name }}{{end}}' ${containers_to_kill} | \
|
|
egrep -v '(^\s*$)' | sort | uniq)
|
|
fi
|
|
|
|
echo "Stopping containers..."
|
|
(docker stop -t 2 ${containers_to_kill} 2>&1) > /dev/null
|
|
|
|
echo "Removing containers..."
|
|
(docker rm -v -f ${containers_to_kill} 2>&1) > /dev/null
|
|
|
|
echo "Removing volumes..."
|
|
(docker volume rm ${volumes_to_remove} 2>&1) > /dev/null
|
|
|
|
echo "All cleaned up!"
|