#!/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}'))
else
    containers_to_kill=(
        glance_{api,registry,data} \
        haproxy \
        heat_{api{,_cfn},engine} \
        horizon \
        keepalived
        keystone \
        kolla_ansible \
        log_data \
        magnum_{api,conductor} \
        mariadb{,_data} \
        murano_{api,engine} \
        neutron_{server,agents,linuxbridge_agent,openvswitch_agent} \
        nova_{data,scheduler,novncproxy,consoleauth,conductor,api,compute,libvirt} \
        openvswitch_{vswitchd,db,data} \
        rabbitmq{,_data} \
        rsyslog \
        swift_{account_{auditor,reaper,replicator,server},container_{auditor,expirer,replicator,server,updater},proxy_server,rsyncd} \
        memcached \
        cinder_{volume,scheduler,backup,api} \
        ironic-{discoverd,conductor,api,pxe}
    )
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 "All cleaned up!"