|
@@ -95,6 +95,37 @@ jaddr() {
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+# Destroy all controllers
|
|
|
+jclean() {
|
|
|
+ if (( ! ${+commands[jq]} )); then
|
|
|
+ echo "jq is required but could not be found." >&2
|
|
|
+ return 1
|
|
|
+ fi
|
|
|
+
|
|
|
+ local controllers=$(juju controllers --format=json | jq -r '.controllers | keys[]' 2>/dev/null)
|
|
|
+ if [[ -z "$controllers" ]]; then
|
|
|
+ echo "No controllers registered"
|
|
|
+ return 0
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo "This will forcefully destroy all storages, models and controllers."
|
|
|
+ echo "Controllers to be destroyed:"
|
|
|
+ echo "$controllers"
|
|
|
+
|
|
|
+ if ! read -q '?Are you sure (y/n)? '; then
|
|
|
+ echo
|
|
|
+ echo "Aborted."
|
|
|
+ return 0
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo
|
|
|
+ for controller in ${=controllers}; do
|
|
|
+ timeout 2m juju destroy-controller --destroy-all-models --destroy-storage --force --no-wait -y $controller
|
|
|
+ timeout 2m juju kill-controller -y -t 0 $controller 2>/dev/null
|
|
|
+ timeout 10s juju unregister $controller 2>/dev/null
|
|
|
+ done
|
|
|
+}
|
|
|
+
|
|
|
# Display app and unit relation data
|
|
|
jreld() {
|
|
|
# $1 = relation name
|
|
@@ -125,3 +156,4 @@ wjst() {
|
|
|
shift $(( $# > 0 ))
|
|
|
watch -n "$interval" --color juju status --relations --storage --color "$@"
|
|
|
}
|
|
|
+
|