#! bin/bash while read PROJECT_NAME; do PROJECT_ID=$(openstack project show "$PROJECT_NAME" -f value -c id 2>/dev/null) if [ -z "$PROJECT_ID" ]; then echo "Project not found: $PROJECT_NAME" continue fi echo "Cleaning project: $PROJECT_NAME ($PROJECT_ID)" openstack server list --project $PROJECT_ID -f value -c ID | xargs -r openstack server delete openstack floating ip list --project $PROJECT_ID -f value -c ID | xargs -r openstack floating ip delete RID=$(openstack router list --project $PROJECT_ID -f value -c ID) subnet=$(openstack subnet list --project $PROJECT_ID -f value -c ID) openstack router remove subnet "$RID" "$subnet" openstack router list --project $PROJECT_ID -f value -c ID | xargs -r openstack router unset --external-gateway openstack router list --project $PROJECT_ID -f value -c ID | xargs -r openstack router delete openstack port list --project $PROJECT_ID -f value -c ID | xargs -r openstack port delete openstack subnet list --project $PROJECT_ID -f value -c ID | xargs -r openstack subnet delete openstack network list --project $PROJECT_ID -f value -c ID | xargs -r openstack network delete openstack volume list --project $PROJECT_ID -f value -c ID | xargs -r openstack volume delete openstack security group list --project $PROJECT_ID -f value -c ID | xargs -r openstack security group delete done < project_list.txt