2 ###################################
3 # job configuration for cperf
4 ###################################
9 # -------------------------------
11 # -------------------------------
19 branch: 'stable/{stream}'
20 gs-pathname: '/{stream}'
23 # -------------------------------
24 # POD, INSTALLER, AND BRANCH MAPPING
25 # -------------------------------
27 # -------------------------------
29 # -------------------------------
41 - 'cperf-{installer}-{pod}-{testsuite}-{stream}'
43 ################################
45 ################################
47 name: 'cperf-{installer}-{pod}-{testsuite}-{stream}'
60 name: '$BUILD_NUMBER Suite: $CPERF_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
70 - '{installer}-defaults'
72 testsuite: '{testsuite}'
73 gs-pathname: '{gs-pathname}'
74 docker-tag: '{docker-tag}'
80 - 'cperf-{testsuite}-builder'
82 ########################
84 ########################
89 name: CPERF_SUITE_NAME
90 default: '{testsuite}'
91 description: "Suite name to run"
94 default: '{gs-pathname}'
95 description: "Version directory where the opnfv documents will be stored in gs repository"
99 description: "Show debug output information"
102 default: '{docker-tag}'
103 description: 'Tag to pull docker image'
105 ########################
107 ########################
109 ########################
111 ########################
113 name: cperf-daily-builder
116 - 'cperf-robot-cbench'
119 name: cperf-robot-cbench
126 undercloud_mac=$(sudo virsh domiflist undercloud | grep default | \
127 grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
128 INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'})
130 sudo scp -o StrictHostKeyChecking=no root@$INSTALLER_IP:/home/stack/overcloudrc /tmp/overcloudrc
131 sudo chmod 755 /tmp/overcloudrc
132 source /tmp/overcloudrc
134 # robot suites need the ssh key to log in to controller nodes, so throwing it
135 # in tmp, and mounting /tmp as $HOME as far as robot is concerned
136 sudo rm -rf /tmp/.ssh
138 sudo chmod 0700 /tmp/.ssh
139 sudo scp -o StrictHostKeyChecking=no root@$INSTALLER_IP:/home/stack/.ssh/id_rsa /tmp/.ssh/
140 sudo chown -R jenkins-ci:jenkins-ci /tmp/.ssh
141 # done with sudo. jenkins-ci is the user from this point
142 chmod 0600 /tmp/.ssh/id_rsa
144 # cbench requires the openflow drop test feature to be installed.
145 sshpass -p karaf ssh -o StrictHostKeyChecking=no \
146 -o UserKnownHostsFile=/dev/null \
148 -p 8101 karaf@$SDN_CONTROLLER_IP \
149 feature:install odl-openflowplugin-flow-services-ui odl-openflowplugin-drop-test
151 docker pull opnfv/cperf:$DOCKER_TAG
153 robot_cmd="pybot -e exclude -L TRACE -d /tmp \
154 -v ODL_SYSTEM_1_IP:${SDN_CONTROLLER_IP} \
155 -v ODL_SYSTEM_IP:${SDN_CONTROLLER_IP} \
156 -v BUNDLEFOLDER:/opt/opendaylight \
157 -v RESTCONFPORT:8081 \
160 -v ODL_SYSTEM_USER:heat-admin \
161 -v TOOLS_SYSTEM_IP:localhost \
163 robot_suite="/home/opnfv/repos/odl_test/csit/suites/openflowplugin/Performance/010_Cbench.robot"
165 docker run -i -v /tmp:/tmp opnfv/cperf:$DOCKER_TAG ${robot_cmd} ${robot_suite}
172 [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
174 echo "Cleaning up docker containers/images..."
175 # Remove previous running containers if exist
176 if [[ ! -z $(docker ps -a | grep opnfv/cperf) ]]; then
177 echo "Removing existing opnfv/cperf containers..."
178 docker ps -a | grep opnfv/cperf | awk '{print $1}' | xargs docker rm -f >${redirect}
181 # Remove existing images if exist
182 if [[ ! -z $(docker images | grep opnfv/cperf) ]]; then
183 echo "Docker images to remove:"
184 docker images | head -1 && docker images | grep opnfv/cperf >${redirect}
185 image_tags=($(docker images | grep opnfv/cperf | awk '{print $2}'))
186 for tag in "${image_tags[@]}"; do
187 echo "Removing docker image opnfv/cperf:$tag..."
188 docker rmi opnfv/cperf:$tag >/dev/null