summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshravani <shravani.p@tcs.com>2017-01-05 18:36:26 +0530
committerShravani Paladugula <shravani.p@tcs.com>2017-02-07 12:24:08 +0000
commit2046178d894438b492d93f30941076ee7964f6ab (patch)
tree062cd5a9ce3d01e2f5f3d86de46bd77b7098ea82
parentb79d79eb6385a92cdc8c29bf080810becc4602b7 (diff)
This patch contains the scripts to install the Qemu rpm and make use of it for
lauching guest VM's Change-Id: I74ce89e1e0d628b0be2d9165b8418a519b52064d Co-Authored-By: Y Rajitha <y.rajitha@tcs.com> Signed-off-by: Shravani <shravani.p@tcs.com>
-rw-r--r--ci/build_rpm/Dockerfile3
-rwxr-xr-xci/cyclicTestTrigger.sh7
-rwxr-xr-xci/envs/host-config2
-rwxr-xr-xci/envs/host-install-qemu.sh44
-rwxr-xr-xci/envs/host-run-qemu.sh1
-rwxr-xr-xci/envs/utils.sh13
-rw-r--r--tests/kvmfornfv_cyclictest_hostenv_guestenv.yaml1
7 files changed, 70 insertions, 1 deletions
diff --git a/ci/build_rpm/Dockerfile b/ci/build_rpm/Dockerfile
index 6d6d3ba35..6004c9057 100644
--- a/ci/build_rpm/Dockerfile
+++ b/ci/build_rpm/Dockerfile
@@ -7,8 +7,11 @@ RUN yum -y update && yum -y install \
gcc-c++ \
zlib-devel \
gtk2-devel \
+ glib2-devel \
make \
gettext \
bc \
+ bison\
+ flex\
rpm \
rpm-build
diff --git a/ci/cyclicTestTrigger.sh b/ci/cyclicTestTrigger.sh
index ec0477fde..d222ae15b 100755
--- a/ci/cyclicTestTrigger.sh
+++ b/ci/cyclicTestTrigger.sh
@@ -14,11 +14,16 @@ testName=$4
source $WORKSPACE/ci/envs/utils.sh
KERNELRPM_VERSION=$( getKernelVersion )
+QEMURPM_VERSION=$( getQemuVersion )
if [ -z ${KERNELRPM_VERSION} ];then
echo "Kernel RPM not found in build_output Directory"
exit 1
fi
+if [ -z ${QEMURPM_VERSION} ];then
+ echo "QEMU RPM not found in build_output Directory"
+ exit 1
+fi
#calculating and verifying sha512sum of the guestimage.
function verifyGuestImage {
@@ -82,6 +87,7 @@ function host_clean {
sudo ssh root@${HOST_IP} "rpm=\$(rpm -qa | grep 'kernel-${KERNELRPM_VERSION}' | awk '{print \$1}'); rpm -ev \$rpm"
sudo ssh root@${HOST_IP} "rm -rf /boot/initramfs-${KERNELRPM_VERSION}*.img"
sudo ssh root@${HOST_IP} "grub2-mkconfig -o /boot/grub2/grub.cfg"
+ sudo ssh root@${HOST_IP} "rpm=\$(rpm -qa | grep 'qemu-${QEMURPM_VERSION}'| awk '{print \$1}'); rpm -ev \$rpm"
sudo ssh root@${HOST_IP} "reboot"
}
@@ -112,6 +118,7 @@ function runCyclicTest {
#copying required files to run yardstick cyclic testcase
cp $WORKSPACE/build_output/kernel-${KERNELRPM_VERSION}*.rpm ${volume}/rpm
+ cp $WORKSPACE/build_output/qemu-${QEMURPM_VERSION}*.rpm ${volume}/rpm
cp -r $WORKSPACE/ci/envs/* ${volume}/scripts
cp -r $WORKSPACE/tests/kvmfornfv_cyclictest_${testName}.yaml ${volume}
cp -r $WORKSPACE/tests/pod.yaml ${volume}/scripts
diff --git a/ci/envs/host-config b/ci/envs/host-config
index a6beb06b6..0f77b7ac5 100755
--- a/ci/envs/host-config
+++ b/ci/envs/host-config
@@ -14,7 +14,7 @@ numa_node=1
huge_pages=2
# QEMU executable path and number of cpus for guest
-qemu=/usr/libexec/qemu-kvm
+qemu=/usr/local/bin/qemu-system-x86_64
guest_cpus=2
# Isolated cpus for nfv, must be given as a range '-' and Numa node1 CPU's should be considered
diff --git a/ci/envs/host-install-qemu.sh b/ci/envs/host-install-qemu.sh
new file mode 100755
index 000000000..18886ea53
--- /dev/null
+++ b/ci/envs/host-install-qemu.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+###############################################################################
+## Copyright (c) 2016 Intel Corp.
+##
+## All rights reserved. This program and the accompanying materials
+## are made available under the terms of the Apache License, Version 2.0
+## which accompanies this distribution, and is available at
+## http://www.apache.org/licenses/LICENSE-2.0
+###############################################################################
+
+source utils.sh
+source host-config
+
+QEMU_VERSION=$( getQemuVersion )
+
+if [ -z $QEMU_VERSION ];then
+ echo "qemu RPM not found"
+ exit 1
+fi
+rpmdir=${1:-"/root/workspace/rpm/"}
+rpmpat="qemu-${QEMU_VERSION}*.rpm"
+
+install_qemu () {
+ # Removing Existing qemu rpms
+ qemu_rpm=$(rpm -qa | grep 'qemu')
+ echo "Removing Existing qemu packages"
+ rpm -ev $qemu_rpm
+ # Install the qemu rpm
+ filenum=`ls -l ${rpmdir}/${rpmpat} |wc -l`
+ if [ $filenum -eq 0 ]
+ then
+ echo "No qemu rpm found in workspace/rpm"
+ exit 1
+ elif [ $filenum -gt 1 ]
+ then
+ echo "Multiple qemu rpm found in workspace/rpm"
+ exit 1
+ else
+ qrpm=`find "${rpmdir}" -name "${rpmpat}"`
+ rpm -ihv $qrpm
+ fi
+}
+install_qemu
diff --git a/ci/envs/host-run-qemu.sh b/ci/envs/host-run-qemu.sh
index 9cd4b45c2..389790eda 100755
--- a/ci/envs/host-run-qemu.sh
+++ b/ci/envs/host-run-qemu.sh
@@ -36,6 +36,7 @@ ${qemu} -smp ${guest_cpus} -monitor unix:${qmp_sock},server,nowait \
-realtime mlock=on -mem-prealloc -enable-kvm -m 1G \
-mem-path /mnt/hugetlbfs-1g \
-device virtio-net-pci,netdev=net0 \
+ -vnc :1
threads=`echo "info cpus" | nc -U ${qmp_sock} | grep thread_id | cut -d= -f3`
diff --git a/ci/envs/utils.sh b/ci/envs/utils.sh
index 90c66bab3..89df273ac 100755
--- a/ci/envs/utils.sh
+++ b/ci/envs/utils.sh
@@ -27,3 +27,16 @@ function getHostIP {
fi
echo $HOST_IP
}
+#Get the Qemu version from RPM generated(example:qemu-2.6.0-1.x86_64.rpm)
+function getQemuVersion {
+ rpm_dir="/root/workspace/rpm/"
+ if [ -d "$WORKSPACE" ];then
+ cd $WORKSPACE/build_output 2>/dev/null; qemuRPM=`ls qemu-[[:digit:]]* 2>/dev/null`
+ RPMVERSION=`echo ${qemuRPM}|awk -F '-' '{print $2}' | awk -F '-' '{print $NF}'`
+ elif [ -d "$rpm_dir" ];then
+ cd $rpm_dir 2>/dev/null; qemuRPM=`ls qemu-[[:digit:]]* 2>/dev/null`
+ RPMVERSION=`echo ${qemuRPM}|awk -F '-' '{print $2}' | awk -F '-' '{print $NF}'`
+ fi
+ echo ${RPMVERSION}
+}
+
diff --git a/tests/kvmfornfv_cyclictest_hostenv_guestenv.yaml b/tests/kvmfornfv_cyclictest_hostenv_guestenv.yaml
index f3c84c856..87168519b 100644
--- a/tests/kvmfornfv_cyclictest_hostenv_guestenv.yaml
+++ b/tests/kvmfornfv_cyclictest_hostenv_guestenv.yaml
@@ -39,6 +39,7 @@ scenarios:
- "host-setup0.sh"
- "reboot"
- "host-setup1.sh"
+ - "host-install-qemu.sh"
- "host-run-qemu.sh"
guest_setup_seqs:
- "guest-setup0.sh"