CI Integration for KVMforNFV 29/18229/2
authorswatisharma <swatix.sharma@intel.com>
Tue, 9 Aug 2016 14:13:46 +0000 (19:43 +0530)
committerswatisharma <swatix.sharma@intel.com>
Wed, 10 Aug 2016 11:03:44 +0000 (16:33 +0530)
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>
ci/envs/cyclictest.sh [new file with mode: 0644]
ci/test_kvmfornfv.sh [new file with mode: 0644]
tests/pod.yaml [new file with mode: 0644]

diff --git a/ci/envs/cyclictest.sh b/ci/envs/cyclictest.sh
new file mode 100644 (file)
index 0000000..e4dd993
--- /dev/null
@@ -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 (file)
index 0000000..a338149
--- /dev/null
@@ -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 (file)
index 0000000..fa66ebf
--- /dev/null
@@ -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