Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
f0458106
Unverified
Commit
f0458106
authored
Nov 15, 2021
by
sed-i
Committed by
Marc Cornellà
Feb 10, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(juju): add `jclean` function to destroy all registered controllers (#10426)
Closes #10426
parent
c41f2e7a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
0 deletions
+33
-0
README.md
plugins/juju/README.md
+1
-0
juju.plugin.zsh
plugins/juju/juju.plugin.zsh
+32
-0
No files found.
plugins/juju/README.md
View file @
f0458106
...
@@ -113,5 +113,6 @@ Naming convention:
...
@@ -113,5 +113,6 @@ Naming convention:
-
`jaddr <app_name> [unit_num]`
: display app or unit IP address.
-
`jaddr <app_name> [unit_num]`
: display app or unit IP address.
-
`jreld <relation_name> <app_name> <unit_num>`
: display app and unit relation data.
-
`jreld <relation_name> <app_name> <unit_num>`
: display app and unit relation data.
-
`jclean`
: destroy all controllers
-
`wjst [interval_secs] [args_for_watch]`
: watch juju status, with optional interval
-
`wjst [interval_secs] [args_for_watch]`
: watch juju status, with optional interval
(default: 5s); you may pass additional arguments to
`watch`
.
(default: 5s); you may pass additional arguments to
`watch`
.
plugins/juju/juju.plugin.zsh
View file @
f0458106
...
@@ -95,6 +95,37 @@ jaddr() {
...
@@ -95,6 +95,37 @@ jaddr() {
fi
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
# Display app and unit relation data
jreld
()
{
jreld
()
{
# $1 = relation name
# $1 = relation name
...
@@ -125,3 +156,4 @@ wjst() {
...
@@ -125,3 +156,4 @@ wjst() {
shift
$((
$#
>
0
))
shift
$((
$#
>
0
))
watch
-n
"
$interval
"
--color
juju status
--relations
--storage
--color
"
$@
"
watch
-n
"
$interval
"
--color
juju status
--relations
--storage
--color
"
$@
"
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment