The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/5791
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) === Closes #5782 Signed-off-by: Stéphane Graber <[email protected]>
From 1d8ce974d3da18ac1c2a04eebd5fe7f0ac4cbc7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Wed, 22 May 2019 14:41:56 -0400 Subject: [PATCH] scripts: Add script to completely reset LXD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #5782 Signed-off-by: Stéphane Graber <[email protected]> --- scripts/empty-lxd.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 scripts/empty-lxd.sh diff --git a/scripts/empty-lxd.sh b/scripts/empty-lxd.sh new file mode 100755 index 0000000000..a979db8f52 --- /dev/null +++ b/scripts/empty-lxd.sh @@ -0,0 +1,52 @@ +#!/bin/sh -eu +if ! which jq >/dev/null 2>&1; then + echo "This tool requires: jq" + exit 1 +fi + +## Delete anything that's tied to a project +for project in $(lxc query "/1.0/projects?recursion=1" | jq .[].name -r); do + echo "==> Deleting all containers for project: ${project}" + for container in $(lxc query "/1.0/containers?recursion=1&project=${project}" | jq .[].name -r); do + lxc delete --project "${project}" -f "${container}" + done + + echo "==> Deleting all images for project: ${project}" + for image in $(lxc query "/1.0/images?recursion=1&project=${project}" | jq .[].fingerprint -r); do + lxc image delete --project "${project}" "${image}" + done +done + +for project in $(lxc query "/1.0/projects?recursion=1" | jq .[].name -r); do + echo "==> Deleting all profiles for project: ${project}" + for profile in $(lxc query "/1.0/profiles?recursion=1&project=${project}" | jq .[].name -r); do + if [ "${profile}" = "default" ]; then + printf 'config: {}\ndevices: {}' | lxc profile edit --project "${project}" default + continue + fi + lxc profile delete --project "${project}" "${profile}" + done + + if [ "${project}" != "default" ]; then + echo "==> Deleting project: ${project}" + lxc project delete "${project}" + fi +done + +## Delete the networks +echo "==> Deleting all networks" +for network in $(lxc query "/1.0/networks?recursion=1" | jq '.[] | select(.managed) | .name' -r); do + lxc network delete "${network}" +done + +## Delete the storage pools +echo "==> Deleting all storage pools" +for storage_pool in $(lxc query "/1.0/storage-pools?recursion=1" | jq .[].name -r); do + for volume in $(lxc query "/1.0/storage-pools/${storage_pool}/volumes/custom?recursion=1" | jq .[].name -r); do + echo "==> Deleting storage volume ${volume} on ${storage_pool}" + lxc storage volume delete "${storage_pool}" "${volume}" + done + + ## Delete the custom storage volumes + lxc storage delete "${storage_pool}" +done
_______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
