Skip to content
Snippets Groups Projects
delete-openstack-user-and-project.sh 2.85 KiB
Newer Older
Mark Beierl's avatar
Mark Beierl committed
#!/bin/bash
Mark Beierl's avatar
Mark Beierl committed
echo $0 started at $(date)
Mark Beierl's avatar
Mark Beierl committed

. ./common-vars
. ./admin-credentials.rc

Mark Beierl's avatar
Mark Beierl committed
PARTICIPANT=${1}
Mark Beierl's avatar
Mark Beierl committed

Mark Beierl's avatar
Mark Beierl committed
OPENSTACK_USER=hackfest-$1
PROJECT=$OPENSTACK_USER
PASSWORD=hackfest
Mark Beierl's avatar
Mark Beierl committed

Mark Beierl's avatar
Mark Beierl committed
echo Cleaning up ${OPENSTACK_USER}
Mark Beierl's avatar
Mark Beierl committed

Mark Beierl's avatar
Mark Beierl committed
PROJECT_ID=`openstack project list | grep "${PROJECT} " | awk '{print $2}'`
if [ "${PROJECT_ID}" != "" ]; then
Mark Beierl's avatar
Mark Beierl committed

Mark Beierl's avatar
Mark Beierl committed
    unset OS_PROJECT_NAME
Mark Beierl's avatar
Mark Beierl committed
    echo "Removing Router Ports"
    for ROUTER in $(openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router list -f value -c ID); do
        openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router unset --external-gateway ${ROUTER}
        PORT=$(openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router show ${ROUTER} -f json -c interfaces_info | jq .interfaces_info[0].port_id -r)
Mark Beierl's avatar
Mark Beierl committed
        while [ "${PORT}" != "null" -a "${PORT}" != "" ] ; do
Mark Beierl's avatar
Mark Beierl committed
            openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router remove port ${ROUTER} ${PORT}
            PORT=$(openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router show ${ROUTER} -f json -c interfaces_info | jq .interfaces_info[0].port_id -r)
Mark Beierl's avatar
Mark Beierl committed
        done
Mark Beierl's avatar
Mark Beierl committed
    done

    echo "Removing VMs"
    openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID server list -f value -c ID | xargs openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID server delete
    echo "Removing Routers"
    openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router list -f value -c ID | xargs openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router delete
    echo "Removing Ports"
    openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID port list -f value -c ID   | xargs openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID port delete
    echo "Removing Networks"
    openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID network list -f value -c ID| xargs openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID network delete

Mark Beierl's avatar
Mark Beierl committed
    #for RBAC in `openstack network rbac list -f value -c ID`; do
    #    openstack network rbac show $RBAC -f value | grep $PROJECT_ID 2> /dev/null
    #    if [ $? -eq 0 ] ; then
    #        echo "Deleting RBAC policy $RBAC"
    #        openstack network rbac delete $RBAC &
    #    fi
    #done
Mark Beierl's avatar
Mark Beierl committed

    echo "Deleting OpenStack project: $PROJECT"
Mark Beierl's avatar
Mark Beierl committed
    . ./admin-credentials.rc
Mark Beierl's avatar
Mark Beierl committed
    openstack project purge --project ${PROJECT_ID}
fi
Mark Beierl's avatar
Mark Beierl committed

Mark Beierl's avatar
Mark Beierl committed
echo "Deleting OpenStack User: $OPENSTACK_USER"
openstack user delete --domain ${ADMIN_DOMAIN} ${OPENSTACK_USER}

echo $0 $@ complete at $(date)