diff options
Diffstat (limited to 'plugins/juju/juju.plugin.zsh')
-rw-r--r-- | plugins/juju/juju.plugin.zsh | 57 |
1 files changed, 51 insertions, 6 deletions
diff --git a/plugins/juju/juju.plugin.zsh b/plugins/juju/juju.plugin.zsh index 07f15b392..be8a2c7ae 100644 --- a/plugins/juju/juju.plugin.zsh +++ b/plugins/juju/juju.plugin.zsh @@ -16,12 +16,22 @@ unset completion_file # Generally, # # - `!` means --force --no-wait -y # # - `ds` suffix means --destroy-storage # +# - `jsh` prefix means juju show-* # # ---------------------------------------------------------- # +alias j="juju" alias jam="juju add-model --config logging-config=\"<root>=WARNING; unit=DEBUG\"\ --config update-status-hook-interval=\"60m\"" alias jb='juju bootstrap' +alias jbng='juju bootstrap --no-gui' +alias jbl='juju bootstrap localhost' +alias jblng='juju bootstrap --no-gui localhost' alias jbm='juju bootstrap microk8s' +alias jbmng='juju bootstrap --no-gui microk8s' alias jc='juju config' +alias jcld='juju clouds' +alias jclda='juju clouds --all' +alias jctl='juju controllers' +alias jctlr='juju controllers --refresh' alias jdc='juju destroy-controller --destroy-all-models' alias 'jdc!'='juju destroy-controller --destroy-all-models --force --no-wait -y' alias jdcds='juju destroy-controller --destroy-all-models --destroy-storage' @@ -56,13 +66,16 @@ alias jrp='juju refresh --path' alias jrs='juju remove-storage' alias 'jrs!'='juju remove-storage --force' alias jsa='juju scale-application' -alias jsh='juju ssh' -alias jshc='juju ssh --container' +alias jsha='juju show-application' +alias jshc='juju show-controller' alias jshm='juju show-model' -alias jssl='juju show-status-log' +alias jshsl='juju show-status-log' +alias jshu='juju show-unit' +alias jssh='juju ssh' +alias jsshc='juju ssh --container' alias jstj='juju status --format=json' -alias jst='juju status --relations --storage --color' -alias jsu='juju show-unit' +alias jst='juju status --relations --color' +alias jsts='juju status --relations --storage --color' alias jsw='juju switch' # ---------------------------------------------------------- # @@ -95,6 +108,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 @@ -123,5 +167,6 @@ jreld() { wjst() { local interval="${1:-5}" shift $(( $# > 0 )) - watch -n "$interval" --color juju status --relations --storage --color "$@" + watch -n "$interval" --color juju status --relations --color "$@" } + |