From 809a6f82de3a8d3d2786d963fbb9632fcbd8ad1d Mon Sep 17 00:00:00 2001 From: Maciej Wawryk Date: Tue, 29 Oct 2019 13:04:11 +0100 Subject: [PATCH] scripts/vagrant: Allow running multiple VMs in parallel Signed-off-by: Maciej Wawryk Change-Id: I7047c3152558911a782be86e5ccf8214f2418c02 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472692 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Seth Howell Reviewed-by: Shuhei Matsumoto --- scripts/vagrant/create_vbox.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/scripts/vagrant/create_vbox.sh b/scripts/vagrant/create_vbox.sh index 32ef74a16..5fb57d288 100755 --- a/scripts/vagrant/create_vbox.sh +++ b/scripts/vagrant/create_vbox.sh @@ -32,6 +32,7 @@ display_help() { echo " (test VM qcow image, fio binary, ssh keys)" echo " --vhost-vm-dir= directory where to put vhost dependencies in VM" echo " --qemu-emulator= directory path with emulator, default: ${SPDK_QEMU_EMULATOR}" + echo " --vagrantfiles-dir= directory to put vagrantfile" echo " -r dry-run" echo " -l use a local copy of spdk, don't try to rsync from the host." echo " -d deploy a test vm by provisioning all prerequisites for spdk autotest" @@ -68,6 +69,7 @@ OPTIND=1 NVME_DISKS_TYPE="" NVME_DISKS_NAMESPACES="" NVME_FILE="" +VAGRANTFILE_DIR="" while getopts ":b:n:s:x:p:vrldh-:" opt; do case "${opt}" in @@ -76,6 +78,7 @@ while getopts ":b:n:s:x:p:vrldh-:" opt; do vhost-host-dir=*) VHOST_HOST_DIR="${OPTARG#*=}" ;; vhost-vm-dir=*) VHOST_VM_DIR="${OPTARG#*=}" ;; qemu-emulator=*) SPDK_QEMU_EMULATOR="${OPTARG#*=}" ;; + vagrantfiles-dir=*) VAGRANTFILE_DIR="${OPTARG#*=}" ;; *) echo "Invalid argument '$OPTARG'" ;; esac ;; @@ -246,16 +249,19 @@ if [ ${DRY_RUN} = 1 ]; then printenv NVME_FILE printenv SPDK_DIR fi +if [ -z "$VAGRANTFILE_DIR" ]; then + VAGRANTFILE_DIR="${VAGRANT_TARGET}/${SPDK_VAGRANT_DISTRO}-${SPDK_VAGRANT_PROVIDER}" +fi -if [ -d "${VAGRANT_TARGET}/${SPDK_VAGRANT_DISTRO}-${SPDK_VAGRANT_PROVIDER}" ]; then - echo "Error: ${VAGRANT_TARGET}/${SPDK_VAGRANT_DISTRO}-${SPDK_VAGRANT_PROVIDER} already exists!" +if [ -d "${VAGRANTFILE_DIR}" ]; then + echo "Error: ${VAGRANTFILE_DIR} already exists!" exit 1 fi if [ ${DRY_RUN} != 1 ]; then - mkdir -vp "${VAGRANT_TARGET}/${SPDK_VAGRANT_DISTRO}-${SPDK_VAGRANT_PROVIDER}" - cp ${DIR}/Vagrantfile ${VAGRANT_TARGET}/${SPDK_VAGRANT_DISTRO}-${SPDK_VAGRANT_PROVIDER} - pushd "${VAGRANT_TARGET}/${SPDK_VAGRANT_DISTRO}-${SPDK_VAGRANT_PROVIDER}" + mkdir -vp "${VAGRANTFILE_DIR}" + cp ${DIR}/Vagrantfile ${VAGRANTFILE_DIR} + pushd "${VAGRANTFILE_DIR}" if [ -n "${http_proxy}" ]; then export http_proxy export https_proxy @@ -276,8 +282,8 @@ EOF echo "" echo " SUCCESS!" echo "" - echo " cd to ${SPDK_VAGRANT_DISTRO}-${SPDK_VAGRANT_PROVIDER} and type \"vagrant ssh\" to use." + echo " cd to ${VAGRANTFILE_DIR} and type \"vagrant ssh\" to use." echo " Use vagrant \"suspend\" and vagrant \"resume\" to stop and start." - echo " Use vagrant \"destroy\" followed by \"rm -rf ${SPDK_VAGRANT_DISTRO}\" to destroy all trace of vm." + echo " Use vagrant \"destroy\" followed by \"rm -rf ${VAGRANTFILE_DIR}\" to destroy all trace of vm." echo "" fi