2023-02-01 19:44:05 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2023-03-06 20:42:17 +00:00
|
|
|
set -e
|
2023-02-01 19:44:05 +00:00
|
|
|
cd "$(dirname "$0")"
|
|
|
|
|
2023-03-11 16:12:19 +00:00
|
|
|
# this script destroys all resources in the current project.
|
2023-03-02 14:46:17 +00:00
|
|
|
|
|
|
|
if lxc remote get-default | grep -q "local"; then
|
|
|
|
echo "ERROR: you are on the local lxc remote. Nothing to destroy"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2023-03-14 15:37:33 +00:00
|
|
|
USER_TARGET_PROJECT=
|
|
|
|
|
|
|
|
# grab any modifications from the command line.
|
|
|
|
for i in "$@"; do
|
|
|
|
case $i in
|
|
|
|
--project=*)
|
|
|
|
USER_TARGET_PROJECT="${i#*=}"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
echo "Unexpected option: $1"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2023-02-01 19:44:05 +00:00
|
|
|
. ../defaults.sh
|
2023-03-02 14:46:17 +00:00
|
|
|
|
2023-03-09 14:55:40 +00:00
|
|
|
. ./remote_env.sh
|
2023-02-01 19:44:05 +00:00
|
|
|
|
2023-04-02 13:41:42 +00:00
|
|
|
. ./project_env.sh
|
2023-03-13 17:40:07 +00:00
|
|
|
|
|
|
|
if ! lxc info | grep "project:" | grep -q "$PROJECT_NAME"; then
|
|
|
|
if lxc project list | grep -q "$PROJECT_NAME"; then
|
|
|
|
lxc project switch "$PROJECT_NAME"
|
|
|
|
fi
|
2023-03-09 14:58:16 +00:00
|
|
|
fi
|
2023-02-01 19:44:05 +00:00
|
|
|
|
2023-03-30 15:08:34 +00:00
|
|
|
for VIRTUAL_MACHINE in www btcpayserver; do
|
|
|
|
LXD_NAME="$VIRTUAL_MACHINE-${PRIMARY_DOMAIN//./-}"
|
2023-02-01 19:44:05 +00:00
|
|
|
|
2023-03-13 17:40:07 +00:00
|
|
|
if lxc list | grep -q "$LXD_NAME"; then
|
|
|
|
lxc delete -f "$LXD_NAME"
|
2023-02-01 19:44:05 +00:00
|
|
|
|
2023-03-13 17:40:07 +00:00
|
|
|
# remove the ssh known endpoint else we get warnings.
|
|
|
|
ssh-keygen -f "$SSH_HOME/known_hosts" -R "$LXD_NAME"
|
|
|
|
fi
|
2023-02-01 19:44:05 +00:00
|
|
|
|
2023-03-13 17:40:07 +00:00
|
|
|
if lxc profile list | grep -q "$LXD_NAME"; then
|
|
|
|
lxc profile delete "$LXD_NAME"
|
|
|
|
fi
|
2023-03-30 15:08:34 +00:00
|
|
|
|
|
|
|
# destroy the docker volume
|
|
|
|
VM_ID=w
|
|
|
|
if [ "$VIRTUAL_MACHINE" = btcpayserver ]; then
|
|
|
|
VM_ID="b"
|
|
|
|
fi
|
|
|
|
|
|
|
|
RESPONSE=
|
|
|
|
read -r -p "Do you want to delete the docker volume for '$LXD_NAME'?": RESPONSE
|
|
|
|
if [ "$RESPONSE" = "y" ]; then
|
|
|
|
VOLUME_NAME="$PRIMARY_DOMAIN_IDENTIFIER-$VM_ID"
|
|
|
|
if lxc storage volume list ss-base | grep -q "$VOLUME_NAME"; then
|
|
|
|
lxc storage volume delete ss-base "$VOLUME_NAME"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "INFO: User DID NOT select 'y'. The storage volume will remain."
|
|
|
|
fi
|
|
|
|
|
2023-03-13 17:40:07 +00:00
|
|
|
done
|
2023-03-09 14:58:16 +00:00
|
|
|
|
2023-04-02 13:41:42 +00:00
|
|
|
if lxc network list -q | grep -q ss-ovn; then
|
|
|
|
lxc network delete ss-ovn
|
|
|
|
fi
|
2023-03-09 14:58:16 +00:00
|
|
|
|
2023-04-02 13:41:42 +00:00
|
|
|
# delete the base image so it can be created.
|
|
|
|
if lxc list | grep -q "$BASE_IMAGE_VM_NAME"; then
|
|
|
|
lxc delete -f "$BASE_IMAGE_VM_NAME" --project default
|
|
|
|
# remove the ssh known endpoint else we get warnings.
|
|
|
|
ssh-keygen -f "$SSH_HOME/known_hosts" -R "$BASE_IMAGE_VM_NAME"
|
|
|
|
fi
|