From 7bce0993dfc1e87494d1630797b8f3390cc5d0e2 Mon Sep 17 00:00:00 2001 From: Carlos Cesario Date: Fri, 6 May 2016 09:19:33 -0300 Subject: [PATCH] Make "cleanup-containers" script works dynamically Make cleanup-containers works dynamically. The script removes the containers and its volumes dynamically based on label contained in each kolla container, this way is not needed create a big container and volume lists to be deleted. http://paste.openstack.org/show/496357/ Closes-Bug: #1579044 Change-Id: Ie0d8a38ba2cf77c8d5da655958407145f4105bec --- tools/cleanup-containers | 58 +++++----------------------------------- 1 file changed, 6 insertions(+), 52 deletions(-) diff --git a/tools/cleanup-containers b/tools/cleanup-containers index 7148bd3cf0..412da2f2eb 100755 --- a/tools/cleanup-containers +++ b/tools/cleanup-containers @@ -10,65 +10,19 @@ 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,mariadb,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} \ - mongodb \ - 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,ssh} \ - 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}}") - fake_containers=$(docker ps -a --filter "name=neutron_openvswitch_agent_fake_*" --filter "name=nova_compute_fake_*" --format "{{.Names}}") - containers_to_kill="${containers_to_kill} ${ceph_osd_containers} ${ceph_osd_bootstrap} ${fake_containers}" + containers_to_kill=$(docker ps --filter "label=kolla_version" --format "{{.Names}}") - 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 - ) + 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 +(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 +(docker rm -v -f ${containers_to_kill} 2>&1) > /dev/null echo "Removing volumes..." -(docker volume rm ${volumes_to_remove[@]} 2>&1) > /dev/null +(docker volume rm ${volumes_to_remove} 2>&1) > /dev/null echo "All cleaned up!"