kolla/tools/cleanup-containers
Carlos Cesario 7bce0993df Make "cleanup-containers" script works dynamically
Make cleanup-containers works dynamically. The script
removes the containers and its volumes dynamically based
on label contained in each kolla container, this way is not
needed create a big container and volume lists to be deleted.

http://paste.openstack.org/show/496357/

Closes-Bug: #1579044
Change-Id: Ie0d8a38ba2cf77c8d5da655958407145f4105bec
2016-05-06 13:12:36 -03:00

29 lines
971 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}}")
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!"