summaryrefslogtreecommitdiffstats
path: root/ci
diff options
context:
space:
mode:
authorJiang, Yunhong <yunhong.jiang@intel.com>2016-09-09 16:32:46 +0000
committerGerrit Code Review <gerrit@172.30.200.206>2016-09-09 16:32:47 +0000
commit7209c685c8bea4ed6cc2f388ef0a65f1fac5b3ed (patch)
tree571d48b3f5ea596b5d535bcdc2a7cab5e7fea5e9 /ci
parentf435810f53bffdf881b852a81546039c72a4c60d (diff)
parent3dbc3510f0107b73c1d3943937218d2dcf5353b3 (diff)
Merge "This patch contains the scripts to remove hardcoded kernel version, host ip and cleaning of the host machine after execution of cyclictest."
Diffstat (limited to 'ci')
-rwxr-xr-xci/envs/guest-setup0.sh8
-rwxr-xr-xci/envs/host-setup0.sh8
-rwxr-xr-xci/envs/utils.sh23
-rwxr-xr-xci/test_kvmfornfv.sh29
4 files changed, 62 insertions, 6 deletions
diff --git a/ci/envs/guest-setup0.sh b/ci/envs/guest-setup0.sh
index 4f9eaa430..301d34cbe 100755
--- a/ci/envs/guest-setup0.sh
+++ b/ci/envs/guest-setup0.sh
@@ -8,9 +8,15 @@
## http://www.apache.org/licenses/LICENSE-2.0
###############################################################################
+source utils.sh
+KERNEL_VERSION=$( getKernelVersion )
+if [ -z $KERNEL_VERSION ];then
+ echo "Kernel RPM not found"
+ exit 1
+fi
rpmdir=${1:-"/root/workspace/rpm"}
-rpmpat="kernel-4.4*.rpm"
+rpmpat="kernel-${KERNEL_VERSION}*.rpm"
guest_isolcpus=1
# The script's caller should passing the rpm directory that is built out from
diff --git a/ci/envs/host-setup0.sh b/ci/envs/host-setup0.sh
index 28c49b8b8..0778aae96 100755
--- a/ci/envs/host-setup0.sh
+++ b/ci/envs/host-setup0.sh
@@ -9,10 +9,16 @@
## http://www.apache.org/licenses/LICENSE-2.0
###############################################################################
+source utils.sh
source host-config
+KERNEL_VERSION=$( getKernelVersion )
+if [ -z $KERNEL_VERSION ];then
+ echo "Kernel RPM not found"
+ exit 1
+fi
rpmdir=${1:-"/root/workspace/rpm/"}
-rpmpat="kernel-4.4*.rpm"
+rpmpat="kernel-${KERNEL_VERSION}*.rpm"
config_grub () {
key=$1
diff --git a/ci/envs/utils.sh b/ci/envs/utils.sh
new file mode 100755
index 000000000..f582b5aac
--- /dev/null
+++ b/ci/envs/utils.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+###############################################################################
+# This script is to fetch kernel version and host ip at run time.
+###############################################################################
+
+#To get the Kernel version from RPM generated(example:kernel-4.4.6_rt14_1607061504nfv-3.x86_64.rpm)
+function getKernelVersion {
+ rpm_dir="/root/workspace/rpm/"
+ if [ -d "$WORKSPACE" ];then
+ cd $WORKSPACE/build_output 2>/dev/null; kernelRPM=`ls kernel-[[:digit:]]* 2>/dev/null`
+ RPMVERSION=`echo ${kernelRPM}|awk -F '_' '{print $1}' | awk -F '-' '{print $NF}'`
+ elif [ -d "$rpm_dir" ];then
+ cd $rpm_dir 2>/dev/null; kernelRPM=`ls kernel-[[:digit:]]* 2>/dev/null`
+ RPMVERSION=`echo ${kernelRPM}|awk -F '_' '{print $1}' | awk -F '-' '{print $NF}'`
+ fi
+ echo ${RPMVERSION}
+}
+
+#Get the IP address from pod.yaml file (example ip : 10.2.117.23)
+function getHostIP {
+ HOST_IP=`grep 'ip' $WORKSPACE/tests/pod.yaml | awk -F ': ' '{print $NF}' | tail -1`
+ echo $HOST_IP
+}
diff --git a/ci/test_kvmfornfv.sh b/ci/test_kvmfornfv.sh
index e507f37d7..fd29f6d43 100755
--- a/ci/test_kvmfornfv.sh
+++ b/ci/test_kvmfornfv.sh
@@ -6,15 +6,30 @@
## and verifies the test results.
############################################################
+source $WORKSPACE/ci/envs/utils.sh
+HOST_IP=$( getHostIP )
+KERNEL_VERSION=$( getKernelVersion )
+if [ -z $KERNEL_VERSION ];then
+ echo "Kernel RPM not found in $WORKSPACE/build_output Directory"
+ exit 1
+fi
+
docker_image_dir=$WORKSPACE/docker_image_build
function env_clean {
- container_id=`sudo docker ps -a | grep kvmfornfv |awk '{print $1}'`
+ container_id=`sudo docker ps -a | grep kvmfornfv |awk '{print $1}'|sed -e 's/\r//g'`
sudo docker rm $container_id
- sudo ssh root@10.2.117.23 "rm -rf /root/workspace/*"
- sudo ssh root@10.2.117.23 "pid=\$(ps aux | grep 'qemu' | awk '{print \$2}' | head -1); echo \$pid |xargs kill"
+ sudo ssh root@$HOST_IP "rm -rf /root/workspace/*"
+ sudo ssh root@$HOST_IP "pid=\$(ps aux | grep 'qemu' | awk '{print \$2}' | head -1); echo \$pid |xargs kill"
sudo rm -rf /tmp/kvmtest-*
}
+function host_clean {
+ sudo ssh root@$HOST_IP "rpm=\$(rpm -qa | grep 'kernel-${KERNEL_VERSION}' | awk '{print \$1}'); rpm -ev \$rpm"
+ sudo ssh root@$HOST_IP "rm -rf /boot/initramfs-${KERNEL_VERSION}*.img"
+ sudo ssh root@$HOST_IP "grub2-mkconfig -o /boot/grub2/grub.cfg"
+ sudo ssh root@$HOST_IP "reboot"
+}
+
#Cleaning up the test environment before running cyclictest through yardstick.
env_clean
@@ -31,7 +46,7 @@ volume=/tmp/kvmtest-${time_stamp}
mkdir -p $volume/{image,rpm,scripts}
#copying required files to run yardstick cyclic testcase
-mv $WORKSPACE/build_output/kernel-4.4*.rpm $volume/rpm
+mv $WORKSPACE/build_output/kernel-${KERNEL_VERSION}*.rpm $volume/rpm
cp -r $WORKSPACE/ci/envs/* $volume/scripts
cp -r $WORKSPACE/tests/cyclictest-node-context.yaml $volume
cp -r $WORKSPACE/tests/pod.yaml $volume
@@ -49,11 +64,17 @@ if [ -z "$result" ]; then
echo `grep -o '"data":[^}]*' $volume/yardstick.out | awk -F '{' '{print $2}'`
echo ""
echo "####################################################"
+ #cleaning the environment after executing the test through yardstick.
env_clean
+ #Cleaning the latest kernel changes on host after executing the test.
+ host_clean
exit 0
else
echo "Testcase failed"
echo `grep -o '"errors":[^,]*' ${volume}/yardstick.out | awk -F '"' '{print $4}'`
+ #cleaning the environment after executing the test through yardstick.
env_clean
+ #Cleaning the latest kernel changes on host after executing the test.
+ host_clean
exit 1
fi