summaryrefslogtreecommitdiffstats
path: root/src/spdk/test/vhost/common/vm_ssh.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/spdk/test/vhost/common/vm_ssh.sh')
-rwxr-xr-xsrc/spdk/test/vhost/common/vm_ssh.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/spdk/test/vhost/common/vm_ssh.sh b/src/spdk/test/vhost/common/vm_ssh.sh
new file mode 100755
index 00000000..abdc3322
--- /dev/null
+++ b/src/spdk/test/vhost/common/vm_ssh.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+
+BASE_DIR=$(readlink -f $(dirname $0))
+[[ -z "$COMMON_DIR" ]] && COMMON_DIR="$(cd $BASE_DIR/../common && pwd)"
+[[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)"
+
+function usage()
+{
+ [[ ! -z $2 ]] && ( echo "$2"; echo ""; )
+ echo "Shortcut script for connecting to or executing command on selected VM"
+ echo "Usage: $(basename $1) [OPTIONS] VM_NUMBER"
+ echo
+ echo "-h, --help print help and exit"
+ echo " --work-dir=WORK_DIR Where to find build file. Must exist. [default: $TEST_DIR]"
+ echo "-w Don't wait for vm to boot"
+ echo "-x set -x for script debug"
+ exit 0
+}
+
+boot_wait=true
+while getopts 'xwh-:' optchar; do
+ case "$optchar" in
+ -)
+ case "$OPTARG" in
+ help) usage $0 ;;
+ work-dir=*) TEST_DIR="${OPTARG#*=}" ;;
+ *) usage $0 "Invalid argument '$OPTARG'" ;;
+ esac ;;
+ h) usage $0 ;;
+ w) boot_wait=false ;;
+ x) set -x ;;
+ *) usage $0 "Invalid argument '$OPTARG'" ;;
+ esac
+done
+
+. $COMMON_DIR/common.sh
+
+shift $((OPTIND-1))
+vm_num="$1"
+shift
+
+
+if ! vm_num_is_valid $vm_num; then
+ usage $0 "Invalid VM num $vm_num"
+ exit 1
+fi
+
+if $boot_wait; then
+ while ! vm_os_booted $vm_num; do
+ if ! vm_is_running $vm_num; then
+ fail "VM$vm_num is not running"
+ fi
+ notice "waiting for VM$vm_num to boot"
+ sleep 1
+ done
+fi
+
+vm_ssh $vm_num "$@"