Commit 1d95f22d authored by Maciej Wawryk's avatar Maciej Wawryk Committed by Tomasz Zawadzki
Browse files

scripts/vagrant: Add automatic emulated disk create



Current scripts/vagrant allow us to manual create every emulated device.
This patch allow to automatic create whole emulated disk while we
create virtual machine.

Signed-off-by: default avatarMaciej Wawryk <maciejx.wawryk@intel.com>
Change-Id: If772adc282c4f6d94dab5eb7337f097a08f708e9
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/475070


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKarol Latecki <karol.latecki@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent 02925187
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
#!/usr/bin/env bash
SYSTEM=$(uname -s)
size="1024M"
name="nvme_disk.img"
nvme_disk="/var/lib/libvirt/images/nvme_disk.img"
type="nvme"

function usage() {
	echo "Usage: ${0##*/} [-s <disk_size>] [-n <backing file name>]"
	echo "-s <disk_size> with postfix e.g. 2G        default: 1024M"
	echo "-n <backing file name>             default: nvme_disk.img"
	echo "                                    for OCSSD default: 9G"
	echo "-n <backing file name>        backing file path with name"
	echo "           default: /var/lib/libvirt/images/nvme_disk.img"
	echo "-t <type>                  default: nvme available: ocssd"
}

@@ -22,7 +24,7 @@ while getopts "s:n:t:h-:" opt; do
			size=$OPTARG
		;;
		n)
			name=$OPTARG
			nvme_disk=$OPTARG
		;;
		t)
			type=$OPTARG
@@ -41,12 +43,14 @@ done

if [ ! "${SYSTEM}" = "FreeBSD" ]; then
	WHICH_OS=$(lsb_release -i | awk '{print $3}')
	nvme_disk="/var/lib/libvirt/images/$name"
	case $type in
		"nvme")
			qemu-img create -f raw $nvme_disk ${size}
		;;
		"ocssd")
			if [ ${size} == "1024M" ]; then
				size="9G"
			fi
			fallocate -l ${size} $nvme_disk
			touch /var/lib/libvirt/images/ocssd_md
		;;
+11 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ display_help() {
	echo "                                  usage: type <number_of_namespaces> types available: ocssd, nvme"
	echo "                                  If no -b option is specified then this option defaults to emulating single"
	echo "                                  NVMe with 1 namespace and assumes path: /var/lib/libvirt/images/nvme_disk.img"
	echo "  -c                              create all above disk, default 0"
	echo "  -s <ram-size> in kb             default: ${SPDK_VAGRANT_VMRAM}"
	echo "  -n <num-cpus> 1 to 4            default: ${SPDK_VAGRANT_VMCPU}"
	echo "  -x <http-proxy>                 default: \"${SPDK_VAGRANT_HTTP_PROXY}\""
@@ -69,9 +70,10 @@ OPTIND=1
NVME_DISKS_TYPE=""
NVME_DISKS_NAMESPACES=""
NVME_FILE=""
NVME_AUTO_CREATE=0
VAGRANTFILE_DIR=""

while getopts ":b:n:s:x:p:vrldh-:" opt; do
while getopts ":b:n:s:x:p:vcrldh-:" opt; do
	case "${opt}" in
		-)
		case "${OPTARG}" in
@@ -99,6 +101,9 @@ while getopts ":b:n:s:x:p:vrldh-:" opt; do
		v)
			VERBOSE=1
		;;
		c)
			NVME_AUTO_CREATE=1
		;;
		r)
			DRY_RUN=1
		;;
@@ -180,6 +185,9 @@ else
				namespace="1"
			fi
			NVME_DISKS_NAMESPACES+="$namespace,";
			if [ ${NVME_AUTO_CREATE} = 1 ]; then
				$SPDK_DIR/scripts/vagrant/create_nvme_img.sh -t $type -n $path
			fi
		done <<< $args
	done
fi
@@ -194,6 +202,7 @@ if [ ${VERBOSE} = 1 ]; then
	echo DRY_RUN=$DRY_RUN
	echo NVME_FILE=$NVME_FILE
	echo NVME_DISKS_TYPE=$NVME_DISKS_TYPE
	echo NVME_AUTO_CREATE=$NVME_AUTO_CREATE
	echo NVME_DISKS_NAMESPACES=$NVME_DISKS_NAMESPACES
	echo SPDK_VAGRANT_DISTRO=$SPDK_VAGRANT_DISTRO
	echo SPDK_VAGRANT_VMCPU=$SPDK_VAGRANT_VMCPU
@@ -245,6 +254,7 @@ if [ ${DRY_RUN} = 1 ]; then
	printenv SPDK_VAGRANT_HTTP_PROXY
	printenv SPDK_QEMU_EMULATOR
	printenv NVME_DISKS_TYPE
	printenv NVME_AUTO_CREATE
	printenv NVME_DISKS_NAMESPACES
	printenv NVME_FILE
	printenv SPDK_DIR