summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorswatisharma <swatix.sharma@intel.com>2016-08-09 19:43:46 +0530
committerswatisharma <swatix.sharma@intel.com>2016-08-10 16:33:44 +0530
commit0d6af5dda5ef996f7a32a4ef4af84a3a67bd96e0 (patch)
treeedd9e5ff02d61ed0f5adad49fd5a3007717a6d6d
parent6ec128a4e6a1819881f8db6659d4024aac35ce38 (diff)
CI Integration for KVMforNFV
This patch contains scripts for running cyclictest through yardstick as part of CI integration for KVMforNFV. The scripts will be triggered to create a docker ubuntu container for running yardstick, configuring the host, launching a guest VM and executing cyclictest through yardstick. The verification process gets completed after running the cyclictest. Co-Authored-By: Gundarapu Reddy <reddyx.gundarapu@intel.com> Signed-off-by: Swati Sharma <swatix.sharma@intel.com>
-rw-r--r--ci/envs/cyclictest.sh23
-rw-r--r--ci/test_kvmfornfv.sh44
-rw-r--r--tests/pod.yaml18
3 files changed, 85 insertions, 0 deletions
diff --git a/ci/envs/cyclictest.sh b/ci/envs/cyclictest.sh
new file mode 100644
index 000000000..e4dd9931f
--- /dev/null
+++ b/ci/envs/cyclictest.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+###########################################################
+## Invoking this script from ubuntu docker container runs
+## cyclictest through yardstick
+###########################################################
+
+pod_config='/opt/pod.yaml'
+cyclictest_context_file='/opt/cyclictest-node-context.yaml'
+
+if [ ! -f ${pod_config} ] ; then
+ echo "file ${pod_config} not found"
+ exit 1
+fi
+
+if [ ! -f ${cyclictest_context_file} ] ; then
+ echo "file ${cyclictest_context_file} not found"
+ exit 1
+fi
+
+#Running cyclictest through yardstick
+yardstick task start ${cyclictest_context_file}
+mv /tmp/yardstick.out /opt/
diff --git a/ci/test_kvmfornfv.sh b/ci/test_kvmfornfv.sh
new file mode 100644
index 000000000..a33814907
--- /dev/null
+++ b/ci/test_kvmfornfv.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+#############################################################
+## This script will launch ubuntu docker container
+## runs cyclictest through yardstick
+## and verifies the test results.
+############################################################
+
+volume=/tmp/kvmtest-*
+if [ -d ${volume} ] ; then
+ echo "Directory '${volume}' exists"
+ sudo rm -rf ${volume}
+fi
+
+time_stamp=$(date +%Y%m%d%H%M%S)
+mkdir -p /tmp/kvmtest-${time_stamp}/{image,rpm,scripts}
+
+#copying required files to run yardstick cyclic testcase
+mv ${WORKSPACE}/build_output/* $volume/rpm
+cp ${WORKSPACE}/ci/envs/* $volume/scripts
+cp ${WORKSPACE}/tests/cyclictest-node-context.yaml $volume
+cp ${WORKSPACE}/tests/pod.yaml $volume
+
+#Launching ubuntu docker container to run yardstick
+sudo docker run -t -i -v $volume:/opt --net=host --name kvmfornfv \
+kvmfornfv:latest /bin/bash /opt/scripts/cyclictest.sh
+container_id=`sudo docker ps -a | grep kvmfornfv |awk '{print $1}'`
+sudo docker rm $container_id
+
+#Verifying the results of cyclictest
+result=`grep -o '"errors":[^,]*' $volume/yardstick.out | awk -F '"' \
+'{print $4}'| awk '{if (NF=0) print "SUCCESS" }'`
+if [ "$result" = "SUCCESS" ]; then
+ echo "####################################################"
+ echo ""
+ echo `grep -o '"data":[^}]*' $volume/yardstick.out | awk -F '{' '{print $2}'`
+ echo ""
+ echo "####################################################"
+ exit 0
+else
+ echo "Testcase failed"
+ echo `grep -o '"errors":[^,]*' $volume/yardstick.out | awk -F '"' '{print $4}'`
+ exit 1
+fi
diff --git a/tests/pod.yaml b/tests/pod.yaml
new file mode 100644
index 000000000..fa66ebf7f
--- /dev/null
+++ b/tests/pod.yaml
@@ -0,0 +1,18 @@
+---
+# sample config file about the POD information, including the
+# name/IP/user/ssh key
+#
+# The options of this config file include:
+# name: the name of this node
+# role: node's role, support role: Master/Controller/Comupte/BareMetal
+# ip: the node's IP address
+# user: the username for login
+# key_filename:the path of the private key file for login
+
+nodes:
+-
+ name: kvm
+ role: Controller
+ ip: 10.2.117.23
+ user: root
+ key_filename: /root/.ssh/id_rsa