1 ###################################
2 # job configuration for cperf
3 ###################################
8 #--------------------------------
10 #--------------------------------
18 branch: 'stable/{stream}'
19 gs-pathname: '/{stream}'
22 #--------------------------------
23 # POD, INSTALLER, AND BRANCH MAPPING
24 #--------------------------------
26 #--------------------------------
28 #--------------------------------
33 #--------------------------------
39 - 'cperf-{installer}-{pod}-{testsuite}-{stream}'
41 ################################
43 ################################
45 name: 'cperf-{installer}-{pod}-{testsuite}-{stream}'
58 name: '$BUILD_NUMBER Suite: $CPERF_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
68 - '{installer}-defaults'
70 testsuite: '{testsuite}'
71 gs-pathname: '{gs-pathname}'
72 docker-tag: '{docker-tag}'
78 - 'cperf-{testsuite}-builder'
80 ########################
82 ########################
87 name: CPERF_SUITE_NAME
88 default: '{testsuite}'
89 description: "Suite name to run"
92 default: '{gs-pathname}'
93 description: "Version directory where the opnfv documents will be stored in gs repository"
97 description: "Show debug output information"
100 default: '{docker-tag}'
101 description: 'Tag to pull docker image'
103 ########################
105 ########################
107 ########################
109 ########################
111 name: cperf-daily-builder
114 - 'cperf-robot-cbench'
117 name: cperf-robot-cbench
124 undercloud_mac=$(sudo virsh domiflist undercloud | grep default | \
125 grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
126 INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'})
127 sudo scp $INSTALLER_IP:/home/stack/stackrc /tmp/stackrc
130 # robot suites need the ssh key to log in to controller nodes, so throwing it
131 # in tmp, and mounting /tmp as $HOME as far as robot is concerned
132 sudo mkdir -p /tmp/.ssh
133 sudo scp $INSTALLER_IP:/home/stack/.ssh/id_rsa /tmp/.ssh/
134 sudo chmod -R 0600 /tmp/.ssh
136 # cbench requires the openflow drop test feature to be installed.
137 sshpass -p karaf ssh -o StrictHostKeyChecking=no \
138 -o UserKnownHostsFile=/dev/null \
140 -p 8101 karaf@$SDN_CONTROLLER_IP \
141 feature:install odl-openflowplugin-flow-services-ui odl-openflowplugin-drop-test
143 docker pull opnfv/cperf:$DOCKER_TAG
145 robot_cmd="pybot -e exclude -L TRACE \
146 -v ODL_SYSTEM_1_IP:${SDN_CONTROLLER_IP} \
147 -v ODL_SYSTEM_IP:${SDN_CONTROLLER_IP} \
148 -v BUNDLEFOLDER:/opt/opendaylight \
149 -v RESTCONFPORT:8081 \
152 -v ODL_SYSTEM_USER:heat-admin \
153 -v TOOLS_SYSTEM_IP:localhost \
155 robot_suite="/home/opnfv/repos/odl_test/csit/suites/openflowplugin/Performance/010_Cbench.robot"
157 docker run -v /tmp:/tmp opnfv/cperf:$DOCKER_TAG ${robot_cmd} ${robot_suite}
164 [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
166 echo "Cleaning up docker containers/images..."
167 # Remove previous running containers if exist
168 if [[ ! -z $(docker ps -a | grep opnfv/cperf) ]]; then
169 echo "Removing existing opnfv/cperf containers..."
170 docker ps -a | grep opnfv/cperf | awk '{print $1}' | xargs docker rm -f >${redirect}
173 # Remove existing images if exist
174 if [[ ! -z $(docker images | grep opnfv/cperf) ]]; then
175 echo "Docker images to remove:"
176 docker images | head -1 && docker images | grep opnfv/cperf >${redirect}
177 image_tags=($(docker images | grep opnfv/cperf | awk '{print $2}'))
178 for tag in "${image_tags[@]}"; do
179 echo "Removing docker image opnfv/cperf:$tag..."
180 docker rmi opnfv/cperf:$tag >/dev/null