Skip to content
Snippets Groups Projects
cleanup-containers 1.71 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/bash
    
    
    containers_running=$(docker ps --filter "label=kolla_version" --format "{{.Names}}")
    
    
    QEMU_PIDS=$(pgrep -l qemu | awk '!/qemu-ga/  && !/qemu-img/ {print $1}')
    
    if [[ "${containers_running}" =~ "nova_libvirt" ]] && [[ $QEMU_PIDS ]] && [[ $(ps --no-headers wwwup $QEMU_PIDS | grep --invert-match '\-xen\-domid 0') ]]; then
    
    Sam Yaple's avatar
    Sam Yaple committed
        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 --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))
    
        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)
    
    Sam Yaple's avatar
    Sam Yaple committed
    
    
    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
    
    
    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!"