From 53bf71ea043426dd23319bd3bd011fd9a8ce0446 Mon Sep 17 00:00:00 2001 From: kalyanreddy Date: Tue, 7 Mar 2017 16:46:59 +0530 Subject: This patch includes updated scripts for modifying function names and to optimize the code for executing all the test cases and performing necessary host cleaning operations after executing all the test cases. Change-Id: Ia1a4f6743631ff07c27afa949b6820fcc862a3ce Co-Authored-By: Y Rajitha Signed-off-by: Gundarapu Kalyan Reddy --- ci/cyclicTestTrigger.sh | 75 ++++++++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 32 deletions(-) (limited to 'ci/cyclicTestTrigger.sh') diff --git a/ci/cyclicTestTrigger.sh b/ci/cyclicTestTrigger.sh index 14aafbe98..56bf342ef 100755 --- a/ci/cyclicTestTrigger.sh +++ b/ci/cyclicTestTrigger.sh @@ -65,29 +65,35 @@ function updateYaml { sed -ri "s/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/${HOST_IP}/" pod.yaml sed -ri "s/loops: [0-9]*/loops: ${testTime}/" kvmfornfv_cyclictest_hostenv_guestenv.yaml sed -ri "0,/interval: [0-9]*/s//interval: 1000/" kvmfornfv_cyclictest_hostenv_guestenv.yaml - sed -ri "s/tc: \"kvmfornfv_cyclictest-node-context\"/tc: \"kvmfornfv_cyclictest_${testName}\"/" kvmfornfv_cyclictest_hostenv_guestenv.yaml cp kvmfornfv_cyclictest_hostenv_guestenv.yaml kvmfornfv_cyclictest_${testName}.yaml + sed -ri "s/tc: \"kvmfornfv_cyclictest-node-context\"/tc: \"kvmfornfv_cyclictest_${testName}\"/" kvmfornfv_cyclictest_${testName}.yaml case $testName in idle_idle) ;; cpustress_idle) sed -i '/host-run-qemu.sh/a\ \- \"stress_daily.sh cpu\"' kvmfornfv_cyclictest_${testName}.yaml + sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml ;; memorystress_idle) sed -i '/host-run-qemu.sh/a\ \- \"stress_daily.sh memory\"' kvmfornfv_cyclictest_${testName}.yaml + sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml ;; iostress_idle) sed -i '/host-run-qemu.sh/a\ \- \"stress_daily.sh io\"' kvmfornfv_cyclictest_${testName}.yaml + sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml ;; idle_cpustress) sed -i '/guest-setup1.sh/a\ \- \"stress_daily.sh cpu\"' kvmfornfv_cyclictest_${testName}.yaml + sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml ;; idle_memorystress) sed -i '/guest-setup1.sh/a\ \- \"stress_daily.sh memory\"' kvmfornfv_cyclictest_${testName}.yaml + sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml ;; idle_iostress) - sed -i '/guest-setup1.sh/a\ \- \"stress_daily.sh memory\"' kvmfornfv_cyclictest_${testName}.yaml + sed -i '/guest-setup1.sh/a\ \- \"stress_daily.sh io\"' kvmfornfv_cyclictest_${testName}.yaml + sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml ;; *) echo "Incorrect test environment: $testName" @@ -98,7 +104,7 @@ function updateYaml { #cleaning the environment after executing the test through yardstick. function env_clean { - container_id=`sudo docker ps -a | grep kvmfornfv_${testType}_${testName} |awk '{print \$1}'|sed -e 's/\r//g'` + container_id=`sudo docker ps -a | grep kvmfornfv_${testType} |awk '{print \$1}'|sed -e 's/\r//g'` sudo docker stop ${container_id} sudo docker rm ${container_id} sudo ssh root@${HOST_IP} "rm -rf /root/workspace/*" @@ -129,50 +135,55 @@ function cleanup { #Creating a docker image with yardstick installed and Verify the results of cyclictest function runCyclicTest { - docker_image_dir=$WORKSPACE/docker_image_build - ( cd ${docker_image_dir}; sudo docker build -t kvmfornfv:latest --no-cache=true . ) - if [ ${?} -ne 0 ] ; then - echo "Docker image build failed" - id=$(sudo docker ps -a | head -2 | tail -1 | awk '{print $1}'); sudo docker rm -f $id - err_exit 1 + container_id=`sudo docker ps -a | grep kvmfornfv_${testType} |awk '{print \$1}'|sed -e 's/\r//g'` + echo "$container_id" + if [ -z "$container_id" ]; then + docker_image_dir=$WORKSPACE/docker_image_build + ( cd ${docker_image_dir}; sudo docker build -t kvmfornfv:latest --no-cache=true . ) + if [ ${?} -ne 0 ] ; then + echo "Docker image build failed" + id=$(sudo docker ps -a | head -2 | tail -1 | awk '{print $1}'); sudo docker rm -f $id + exit 1 + fi + time_stamp=$(date +%Y%m%d%H%M%S) + volume=/tmp/kvmtest-${testType}-${time_stamp} + mkdir -p $volume/{image,rpm,scripts} + #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 + #Launching ubuntu docker container to run yardstick + container_id=`sudo docker run -i -d -v ${volume}:/opt --net=host --name kvmfornfv_${testType} \ + kvmfornfv:latest` + sudo docker exec -i $container_id /bin/bash -c "cd /opt/scripts && ls; ./cyclictest.sh $testType $testName" + cyclictest_output=$? + else + cp -r $WORKSPACE/tests/kvmfornfv_cyclictest_${testName}.yaml ${volume} + sudo docker exec -i $container_id /bin/bash -c "cd /opt/scripts && ls; ./cyclictest.sh $testType $testName" + cyclictest_output=$? fi - time_stamp=$(date +%Y%m%d%H%M%S) - volume=/tmp/kvmtest-${testType}-${time_stamp} - mkdir -p $volume/{image,rpm,scripts} - - #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 - - #Launching ubuntu docker container to run yardstick - sudo docker run -i -v ${volume}:/opt --net=host --name kvmfornfv_${testType}_${testName} \ - kvmfornfv:latest /bin/bash -c "cd /opt/scripts && ls; ./cyclictest.sh $testType $testName" - cyclictest_output=$? + if [ "$testName" == "iostress_idle" ];then copyLogs fi + #Verifying the results of cyclictest if [ "$testType" == "verify" ];then result=`grep -o '"errors":[^,]*' ${volume}/yardstick.out | awk -F '"' '{print $4}'` - if [ -z "${result}" ]; then + if [ -z "${result}" ] && [ "${cyclictest_output}" == 0 ]; then echo "####################################################" - echo "" + echo " " echo `grep -o '"data":[^}]*' ${volume}/yardstick.out | awk -F '{' '{print $2}'` echo "" echo "####################################################" - cleanup $cyclictest_output + return 0 else echo "Testcase failed" echo `grep -o '"errors":[^,]*' ${volume}/yardstick.out | awk -F '"' '{print $4}'` - env_clean - host_clean return 1 fi - else - cleanup $cyclictest_output fi -} +} \ No newline at end of file -- cgit 1.2.3-korg