1 ###################################
2 # job configuration for cperf
3 ###################################
8 #--------------------------------
10 #--------------------------------
17 #--------------------------------
18 # POD, INSTALLER, AND BRANCH MAPPING
19 #--------------------------------
21 #--------------------------------
23 #--------------------------------
28 #--------------------------------
34 - 'cperf-{installer}-{pod}-{testsuite}-{stream}'
36 ################################
38 ################################
40 name: 'cperf-{installer}-{pod}-{testsuite}-{stream}'
53 name: '$BUILD_NUMBER Suite: $CPERF_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
63 - '{installer}-defaults'
65 testsuite: '{testsuite}'
66 gs-pathname: '{gs-pathname}'
67 docker-tag: '{docker-tag}'
73 - 'cperf-{testsuite}-builder'
75 ########################
77 ########################
82 name: CPERF_SUITE_NAME
83 default: '{testsuite}'
84 description: "Suite name to run"
87 default: '{gs-pathname}'
88 description: "Version directory where the opnfv documents will be stored in gs repository"
92 description: "Show debug output information"
95 default: '{docker-tag}'
96 description: 'Tag to pull docker image'
98 ########################
100 ########################
102 ########################
104 ########################
106 name: cperf-daily-builder
109 - 'cperf-robot-cbench'
112 name: cperf-robot-cbench
119 undercloud_mac=$(sudo virsh domiflist undercloud | grep default | \
120 grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
121 INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'})
122 sudo scp $INSTALLER_IP:/home/stack/stackrc /tmp/stackrc
125 # robot suites need the ssh key to log in to controller nodes, so throwing it
126 # in tmp, and mounting /tmp as $HOME as far as robot is concerned
127 sudo mkdir -p /tmp/.ssh
128 sudo scp $INSTALLER_IP:/home/stack/.ssh/id_rsa /tmp/.ssh/
129 sudo chmod -R 0600 /tmp/.ssh
131 # cbench requires the openflow drop test feature to be installed.
132 sshpass -p karaf ssh -o StrictHostKeyChecking=no \
133 -o UserKnownHostsFile=/dev/null \
135 -p 8101 karaf@$SDN_CONTROLLER_IP \
136 feature:install odl-openflowplugin-flow-services-ui odl-openflowplugin-drop-test
138 docker pull opnfv/cperf:$DOCKER_TAG
140 robot_cmd="pybot -e exclude -L TRACE \
141 -v ODL_SYSTEM_1_IP:${SDN_CONTROLLER_IP} \
142 -v ODL_SYSTEM_IP:${SDN_CONTROLLER_IP} \
143 -v BUNDLEFOLDER:/opt/opendaylight \
144 -v RESTCONFPORT:8081 \
147 -v ODL_SYSTEM_USER:heat-admin \
148 -v TOOLS_SYSTEM_IP:localhost \
150 robot_suite="/home/opnfv/repos/odl_test/csit/suites/openflowplugin/Performance/010_Cbench.robot"
152 docker run -v /tmp:/tmp opnfv/cperf:$DOCKER_TAG ${robot_cmd} ${robot_suite}
159 [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
161 echo "Cleaning up docker containers/images..."
162 # Remove previous running containers if exist
163 if [[ ! -z $(docker ps -a | grep opnfv/cperf) ]]; then
164 echo "Removing existing opnfv/cperf containers..."
165 docker ps -a | grep opnfv/cperf | awk '{print $1}' | xargs docker rm -f >${redirect}
168 # Remove existing images if exist
169 if [[ ! -z $(docker images | grep opnfv/cperf) ]]; then
170 echo "Docker images to remove:"
171 docker images | head -1 && docker images | grep opnfv/cperf >${redirect}
172 image_tags=($(docker images | grep opnfv/cperf | awk '{print $2}'))
173 for tag in "${image_tags[@]}"; do
174 echo "Removing docker image opnfv/cperf:$tag..."
175 docker rmi opnfv/cperf:$tag >/dev/null