Skip to content

Commit

Permalink
feat(juju): add functions to get current controller and model (ohmyzs…
Browse files Browse the repository at this point in the history
  • Loading branch information
Abuelodelanada authored Mar 23, 2023
1 parent f9f01e4 commit 5efcfc3
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
2 changes: 2 additions & 0 deletions plugins/juju/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,5 +126,7 @@ Naming convention:
- `jaddr <app_name> [unit_num]`: display app or unit IP address.
- `jreld <relation_name> <app_name> <unit_num>`: display app and unit relation data.
- `jclean`: destroy all controllers
- `jcontroller`: display the controller your are connected to.
- `jmodel`: display the model your are connected to.
- `wjst [interval_secs] [args_for_watch]`: watch juju status, with optional interval
(default: 5s); you may pass additional arguments to `watch`.
32 changes: 31 additions & 1 deletion plugins/juju/juju.plugin.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -163,10 +163,40 @@ jreld() {
juju run "relation-get -r $relid - $2" --unit $2/$3
}

# Return Juju current controller
jcontroller() {
local controller="$(awk '/current-controller/ {print $2}' ~/.local/share/juju/controllers.yaml)"
if [[ -z "$controller" ]]; then
return 1
fi

echo $controller
return 0
}

# Return Juju current model
jmodel() {
local yqbin="$(whereis yq | awk '{print $2}')"

if [[ -z "$yqbin" ]]; then
echo "--"
return 1
fi

local model="$(yq e ".controllers.$(jcontroller).current-model" < ~/.local/share/juju/models.yaml | cut -d/ -f2)"

if [[ -z "$model" ]]; then
echo "--"
return 1
fi

echo $model
return 0
}

# Watch juju status, with optional interval (default: 5 sec)
wjst() {
local interval="${1:-5}"
shift $(( $# > 0 ))
watch -n "$interval" --color juju status --relations --color "$@"
}

0 comments on commit 5efcfc3

Please sign in to comment.