summaryrefslogtreecommitdiffstats
path: root/ci/envs/host-config
blob: 54d262af4886955e64c70132b1c1c78ed61f6d52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/bash

##############################################################################
## Copyright (c) 2015 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
###############################################################################

# Number of huge pages to create and on which NUMA node
numa_node=1
huge_pages=2

# QEMU executable path and number of cpus for guest
qemu=/usr/local/bin/qemu-system-x86_64
guest_cpus=2
pcm_memory=/root/pcm/pcm-memory.x

# Isolated cpus for nfv, must be given as a range '-' and Numa node1 CPU's should be considered
host_isolcpus=`lscpu | grep "NUMA node1 CPU(s)"| awk -F ':' '{print \$2}' | sed 's/[[:space:]]//g'`
first=$(echo ${host_isolcpus} | cut -f1 -d-)
last=$(echo ${host_isolcpus} | cut -f2 -d- | cut -d',' -f1 )

# Bind cpus from host_isolcpus range for QEMU processor threads
i=0
while [ ${i} -lt ${guest_cpus} ]; do
 qemu_cpu[$i]=${first}
 i=`expr $i + 1`
 first=`expr $first + 1`
done

#Isolated cpus from host_isolcpus range to run Stress tool
stress_isolcpus=${first}-${last}
echo "Stress tool runs on $stress_isolcpus"

#Host for executing test cases based on test_type/job from releng
function setHostIP {
   test_type=$1
   if [ ${test_type} == "verify" ];then
      HOST_IP="10.10.100.21"
   elif [ ${test_type} == "daily" ];then
      HOST_IP="10.10.100.22"
   else
      echo "Incorrect test type"
   fi
   echo ${HOST_IP}
}

#Time duration for executing test cases based on test_type/job from releng
function setTestTime {
   test_type=$1
   if [ ${test_type} == "verify" ];then
      test_time=120000 # 2m
   elif [ ${test_type} == "daily" ];then
      test_time=3600000 # 1hr
   else
      echo "Incorrect test type"
   fi
   echo ${test_time}
}

#Tar the log files generated during testcase execution and exit.
function test_exit {
   exitCode=$1
   cd $WORKSPACE/build_output/
   if [ -d log ];then
      tar -czvf log-$(date -u +"%Y-%m-%d_%H-%M-%S").tar.gz log
   fi
   exit $exitCode
}

function copyLogs {
   echo "Copying Log files from Node to Jump Server"
   sudo ssh root@${HOST_IP} "cd /root;tar -czvf MBWInfo.tar.gz MBWInfo"
   mkdir -p $WORKSPACE/build_output/log/MBWInfo
   scp root@${HOST_IP}:/root/MBWInfo.tar.gz $WORKSPACE/build_output/log/MBWInfo
   echo "Listing all the logs collected"
   cd $WORKSPACE;ls build_output/log/MBWInfo;
   sudo ssh root@${HOST_IP} "cd /root;rm -rf MBWInfo MBWInfo.tar.gz"
}

function packet_fwd_logs {
   #Tar and copy logs for uploading to artifacts repository
   echo "Copying Log files from Node to Jump Server"
   mkdir -p $WORKSPACE/build_output/log/packet_fwd
   scp -r root@${HOST_IP}:/tmp/packet_fwd_logs $WORKSPACE/build_output/log/packet_fwd
   #removing collected logs on the node after copying.
   sudo ssh root@${HOST_IP} "cd /tmp;rm -rf packet_fwd_logs"
}

function packet_fwd_exit {
   exitCode=$1
   TIMESTAMP=$(date -u +"%Y-%m-%d_%H-%M-%S")
   cd $WORKSPACE/build_output/
   if [ -d log ];then
      tar -czvf log-${TIMESTAMP}.tar.gz log
      echo "Uploading packet forwarding logs and results"
      gsutil cp -r log-*.tar.gz gs://artifacts.opnfv.org/kvmfornfv/packet_fwd_${TIMESTAMP} > $WORKSPACE/build_output/gsutil.log 2>&1
      echo "http://artifacts.opnfv.org/kvmfornfv/packet_fwd_${TIMESTAMP}"
   fi
   exit $exitCode
}