da83802b1b
Move ovs-cleanup step to cleanup-containers, otherwise bridges will not be removed because neutron_openvswitch_agent container does not exists after running cleanup-containers. Add logic to cleanup ovs bridges only when openvswitch_db is removed and openvswitch-agent is running, so when removing other container from a parameter at script invocation ovs-cleanup will not be executed. Change-Id: Ie5fea40426df0e9e465fc173aba185f61098f676 Closes-Bug: #1640178
40 lines
1.6 KiB
Bash
Executable File
40 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
QEMU_PIDS=$(pgrep qemu)
|
|
if [[ $COMPUTE ]] && [[ $QEMU_PIDS ]] && [[ $(ps --no-headers wwwup $QEMU_PIDS | grep --invert-match '\-xen\-domid 0') ]]; 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 --filter "label=kolla_version" --format "{{.Names}}" -a | grep -E "$1" | awk '{print $1}'))
|
|
volumes_to_remove=($(docker inspect -f '{{range .Mounts}} {{printf "%s\n" .Name }}{{end}}' $1 | \
|
|
egrep -v '(^\s*$)' | sort | uniq))
|
|
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
|
|
|
|
containers_running=$(docker ps --filter "label=kolla_version" --format "{{.Names}}")
|
|
|
|
if [[ "${containers_to_kill}" =~ "openvswitch_vswitchd" ]] && [[ "${containers_running}" =~ "neutron_openvswitch_agent" ]]; then
|
|
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
|
|
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!"
|