Skip to content
Snippets Groups Projects
cleanup-containers 2.64 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/bash
    
    Sam Yaple's avatar
    Sam Yaple committed
    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
    
    Sam Yaple's avatar
    Sam Yaple committed
    
    
    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} \
    
            cron \
    
            glance_{api,registry} \
    
            haproxy \
            heat_{api{,_cfn},engine} \
    
            ironic_{inspector,conductor,api,pxe} \
    
            keepalived \
    
            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,ssh} \
    
            openvswitch_{vswitchd,db} \
    
            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}"
    
            ceph_mon{,_config} \
            elasticsearch \
    
            haproxy_socket \
            heka{,_socket} \
    
            libvirtd \
    
            neutron_metadata_socket \
    
            nova_compute \
    
            openvswitch_db \
            rabbitmq
    
    Sam Yaple's avatar
    Sam Yaple committed
    
    echo "Stopping containers..."
    
    (docker stop -t 2 ${containers_to_kill[@]} 2>&1) > /dev/null
    
    Sam Yaple's avatar
    Sam Yaple committed
    
    echo "Removing containers..."
    
    (docker rm -v -f ${containers_to_kill[@]} 2>&1) > /dev/null
    
    Sam Yaple's avatar
    Sam Yaple committed
    
    
    echo "Removing volumes..."
    (docker volume rm ${volumes_to_remove[@]} 2>&1) > /dev/null
    
    
    Sam Yaple's avatar
    Sam Yaple committed
    echo "All cleaned up!"