kolla-ansible/tools/cleanup-containers
Éric Lemoine 32a4cadac9 Add cron image and playbook
Add cron image and playbook for logrotate.

The "common" Ansible playbook includes configuration files for
logrotate. At this point the operator cannot customize/override the
logrotate configuration.

Closes-Bug: #1553244
Change-Id: Ic9fdda9a273c9ccd90502f0acc7614d2c7157dca
2016-03-09 13:53:55 +01:00

72 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 \
mariadb \
mongodb \
neutron_metadata_socket \
nova_{compute,libvirt} \
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!"