f76e9a1e0d
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
29 lines
974 B
Bash
Executable File
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!"
|