kolla-ansible/tools/cleanup-containers
luyao cf2ff03d60 TrivialFix: Delete virtual bridge artifacts when cleaning hosts
After cleaning hosts by using tools/cleanup_host, some of the ovs bridge
devices such as ovs-system still exist. This will result in
{{neutron_external_interface}} not working properly because it had been
added to the ovs-system bridge. The solution is calling
neutron-ovs-cleanup script in neutron_openvswitch_agent container before
removing it.

TrivialFix

Change-Id: Ib3b096d842f2210b8bd223892a3492ef2fcf7c52
Signed-off-by: luyao <lu.yao135@zte.com.cn>
2016-09-06 09:05:30 +00:00

34 lines
1.2 KiB
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 "Removing ovs bridge..."
(docker exec -u root neutron_openvswitch_agent neutron-ovs-cleanup \
--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
--ovs_all_ports) > /dev/null
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!"