Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support bulk start/stop and destroy env operation #20

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 30 additions & 24 deletions mbx
Original file line number Diff line number Diff line change
Expand Up @@ -610,43 +610,49 @@ sshp() {
}

stop() {
env=$1
if [ -z "$env" ]; then
echo "Usage: mbx stop <env name>. Please pass a name, run 'mbx list' for list of available envs."
envs=( "$@" )
if [ ${#envs[@]} == 0 ]; then
echo "Usage: mbx stop <env names>. Please pass a name, run 'mbx list' for list of available envs."
return
fi
sync
for vm in $(cat $ROOT/boxes/$env/list); do
sync
virsh destroy $vm 2>/dev/null || true
for env in "${envs[@]}"; do
for vm in $(cat $ROOT/boxes/$env/list); do
sync
virsh destroy $vm 2>/dev/null || true
done
done
}

start() {
env=$1
if [ -z "$env" ]; then
echo "Usage: mbx start <env name>. Please pass a name, run 'mbx list' for list of available envs."
envs=( "$@" )
if [ ${#envs[@]} == 0 ]; then
echo "Usage: mbx start <env names>. Please pass a name, run 'mbx list' for list of available envs."
return
fi
for vm in $(cat $ROOT/boxes/$env/list); do
virsh start $vm 2>/dev/null || true;
for env in "${envs[@]}"; do
for vm in $(cat $ROOT/boxes/$env/list); do
virsh start $vm 2>/dev/null || true;
done
done
}

destroy() {
env=$1
if [ -z "$env" ]; then
echo "Usage: mbx destroy <env name>. Please pass a name, run 'mbx list' for list of available envs."
envs=( "$@" )
if [ ${#envs[@]} == 0 ]; then
echo "Usage: mbx destroy <env names>. Please pass a name, run 'mbx list' for list of available envs."
return
fi
for vm in $(cat $ROOT/boxes/$env/list); do
virsh destroy $vm 2> /dev/null || true;
virsh undefine $vm;
for env in "${envs[@]}"; do
for vm in $(cat $ROOT/boxes/$env/list); do
virsh destroy $vm 2> /dev/null || true;
virsh undefine $vm;
done
sed -i "/$env/d" $ROOT/boxes/boxes.list
sync
rm -fr $ROOT/boxes/$env
sudo rm -fr /export/testing/$env
done
sed -i "/$env/d" $ROOT/boxes/boxes.list
sync
rm -fr $ROOT/boxes/$env
sudo rm -fr /export/testing/$env
}

case "$1" in
Expand All @@ -661,8 +667,8 @@ case "$1" in
dev) dev ${@:2};;
agentscp) agentscp ${@:2};;
ssh) sshp $2;;
start) start $2;;
stop) stop $2;;
destroy) destroy $2;;
start) start ${@:2};;
stop) stop ${@:2};;
destroy) destroy ${@:2};;
*) usage;;
esac