kolla-ansible/tools/cleanup-containers
SamYaple b98bc3a458 Change libvirt volume name to libvirtd
This change is a "futureproofing" thing. It has already been discussed
that libvirt should not be a child of nova and should be removed out
to the base docker directory (just like openvswitch isn't a child of
neutron). That is not going to happen this cycle but when it does we
can't change the name of the volume. This updates the volumes to the
proper name of libvirtd. This is in contrast with the libvirtlogd
volume that will be needed in newton due to libvirt 1.3

Of note, the container can remain named nova_libvirt since we can
change that on the fly later without breaking instances.

This wont break liberty as named_volumes are not backported yet.

TrivialFix

Change-Id: I16cf9e1b1dbba9b5a9f5cc883494580e276d4f72
2016-03-15 22:41:00 +00:00

73 lines
2.4 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=(
bootstrap_{ceph_mon,cinder,glance,heat,heka,ironic,ironic_pxe,keystone,magnum,mistral,mongodb,murano,neutron,nova,nova_compute} \
cinder_{volume,scheduler,backup,api} \
ceph_{mon,rgw} \
cron \
elasticsearch \
glance_{api,registry} \
haproxy \
heat_{api{,_cfn},engine} \
heka \
horizon \
ironic_{inspector,conductor,api,pxe} \
keepalived \
keystone \
kibana \
kolla_toolbox \
magnum_{api,conductor} \
manila_{api,share,scheduler} \
mariadb \
memcached \
mistral_{api,engine,executor} \
murano_{api,engine} \
neutron_{server,dhcp_agent,l3_agent,linuxbridge_agent,metadata_agent,openvswitch_agent} \
nova_{scheduler,novncproxy,consoleauth,conductor,api,compute,libvirt,spicehtml5proxy,compute_ironic} \
openvswitch_{vswitchd,db} \
rabbitmq{,_bootstrap} \
swift_{account_{auditor,reaper,replicator,server},container_{auditor,replicator,server,updater},object_{auditor,expirer,replicator,server,updater},proxy_server,rsyncd}
)
ceph_osd_bootstrap=$(docker ps -a --filter "name=bootstrap_osd_*" --format "{{.Names}}")
ceph_osd_containers=$(docker ps -a --filter "name=ceph_osd_*" --format "{{.Names}}")
containers_to_kill="${containers_to_kill} ${ceph_osd_containers} ${ceph_osd_bootstrap}"
volumes_to_remove=(
ceph_mon{,_config} \
elasticsearch \
glance \
haproxy_socket \
heka{,_socket} \
ironic_pxe \
kolla_logs \
libvirtd \
mariadb \
mongodb \
neutron_metadata_socket \
nova_compute \
openvswitch_db \
rabbitmq
)
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!"