kolla-ansible/tools/cleanup-containers
Michal (inc0) Jastrzebski f76e9a1e0d Make cleanup remove restarting/exited containers
If we have bug in contianer or it simplt somehow ended up in Exited
state, cleanup doesn't flush it. It also means it doesn't flush volumes
and that might cause an dirty env.

Closes-Bug: #1587344
Change-Id: Ib5705992500ce7efdc66509df61c381bd33d1954
2016-06-14 16:59:41 +00:00

29 lines
974 B
Bash
Executable File

#!/bin/bash
if [[ $(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!"