]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/vhost/fiotest/vm_shutdown.sh
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / spdk / test / vhost / fiotest / vm_shutdown.sh
1 #!/usr/bin/env bash
2
3 BASE_DIR=$(readlink -f $(dirname $0))
4 [[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)"
5
6 function usage()
7 {
8 [[ ! -z $2 ]] && ( echo "$2"; echo ""; )
9 echo "Shortcut script for shutting down VMs"
10 echo "Usage: $(basename $1) [OPTIONS] [VMs]"
11 echo
12 echo "-h, --help print help and exit"
13 echo " --work-dir=WORK_DIR Where to find build file. Must exist. [default: ./..]"
14 echo "-a kill/shutdown all running VMs"
15 echo "-k kill instead of shutdown"
16 exit 0
17 }
18 optspec='akh-:'
19 do_kill=false
20 all=false
21
22 while getopts "$optspec" optchar; do
23 case "$optchar" in
24 -)
25 case "$OPTARG" in
26 help) usage $0 ;;
27 work-dir=*) TEST_DIR="${OPTARG#*=}" ;;
28 *) usage $0 "Invalid argument '$OPTARG'" ;;
29 esac
30 ;;
31 h) usage $0 ;;
32 k) do_kill=true ;;
33 a) all=true ;;
34 *) usage $0 "Invalid argument '$OPTARG'"
35 esac
36 done
37
38 . $BASE_DIR/common.sh
39
40 if $do_kill && [[ $EUID -ne 0 ]]; then
41 echo "Go away user come back as root"
42 exit 1
43 fi
44
45 if $all; then
46 if do_kill; then
47 echo 'INFO: killing all VMs'
48 vm_kill_all
49 else
50 echo 'INFO: shutting down all VMs'
51 vm_shutdown_all
52 fi
53 else
54 shift $((OPTIND-1))
55
56 if do_kill; then
57 echo 'INFO: killing VMs: $@'
58 for vm in $@; do
59 vm_kill $vm
60 done
61 else
62 echo 'INFO: shutting down all VMs'
63 vm_shutdown_all
64 fi
65 fi