X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fcperf%2Fcperf-robot-netvirt-csit.sh;h=c30f10ae3ec97668be312badaacdee8079da74b5;hb=37a3d54c1fd1c3802d3e6b783d087b3a0a8e47b7;hp=42c44665a73d8116e4f7a01999ad984ed0b4862a;hpb=93fa78bec3fcc5cca7e7c8a1554f2583d2e99b69;p=releng.git diff --git a/jjb/cperf/cperf-robot-netvirt-csit.sh b/jjb/cperf/cperf-robot-netvirt-csit.sh index 42c44665a..c30f10ae3 100755 --- a/jjb/cperf/cperf-robot-netvirt-csit.sh +++ b/jjb/cperf/cperf-robot-netvirt-csit.sh @@ -4,6 +4,11 @@ set -o errexit set -o nounset set -o pipefail +if [[ ! -z ${SKIP_CSIT+x} && "$SKIP_CSIT" == "True" ]]; then + echo "Skipping csit run" + exit 0 +fi + if [ "$OS_VERSION" == 'master' ]; then FULL_OS_VER='master' else @@ -11,12 +16,12 @@ else fi if [ "$ODL_BRANCH" == 'master' ]; then - ODL_STREAM='flourine' + ODL_STREAM='neon' else - ODL_STREAM=${ODL_BRANCH} + ODL_STREAM=${ODL_BRANCH#"stable/"} fi -echo "ODL Branch set: ${ODL_BRANCH} and OS Version is ${FULL_OS_VER}" +echo "ODL Stream set: ${ODL_STREAM} and OS Version is ${FULL_OS_VER}" sudo rm -rf releng git clone https://gerrit.opnfv.org/gerrit/releng.git @@ -33,6 +38,17 @@ NUM_COMPUTE_NODES=$(python ${REL_PATH}/parse-node-yaml.py num_nodes --node-type echo "Number of Control nodes found: ${NUM_CONTROL_NODES}" echo "Number of Compute nodes found: ${NUM_COMPUTE_NODES}" +# Only 1 combo or ctrl node is specified, even for OS HA deployments +# Currently supported combinations are: +# 0cmb-1ctl-2cmp +# 1cmb-0ctl-0cmp +# 1cmb-0ctl-1cmp +if [ "$NUM_COMPUTE_NODES" -eq 0 ]; then + OPENSTACK_TOPO="1cmb-0ctl-0cmp" +else + OPENSTACK_TOPO="0cmb-1ctl-2cmp" +fi + idx=1 EXTRA_ROBOT_ARGS="" for idx in `seq 1 $NUM_CONTROL_NODES`; do @@ -43,11 +59,16 @@ for idx in `seq 1 $NUM_CONTROL_NODES`; do -v HA_PROXY_${idx}_IP:${SDN_CONTROLLER_IP}" done -idx=1 -for idx in `seq 1 $NUM_COMPUTE_NODES`; do - COMPUTE_IP=$(python ${REL_PATH}/parse-node-yaml.py get_value -k address --node-type compute --node-number ${idx} --file $NODE_FILE_PATH) - EXTRA_ROBOT_ARGS+=" -v OS_COMPUTE_${idx}_IP:${COMPUTE_IP}" -done +# In all-in-one these Compute IPs still need to be passed to robot +if [ "$NUM_COMPUTE_NODES" -eq 0 ]; then + EXTRA_ROBOT_ARGS+=" -v OS_COMPUTE_1_IP:'' -v OS_COMPUTE_2_IP:''" +else + idx=1 + for idx in `seq 1 $NUM_COMPUTE_NODES`; do + COMPUTE_IP=$(python ${REL_PATH}/parse-node-yaml.py get_value -k address --node-type compute --node-number ${idx} --file $NODE_FILE_PATH) + EXTRA_ROBOT_ARGS+=" -v OS_COMPUTE_${idx}_IP:${COMPUTE_IP}" + done +fi CONTROLLER_1_IP=$(python ${REL_PATH}/parse-node-yaml.py get_value -k address --node-number 1 --file $NODE_FILE_PATH) @@ -58,20 +79,25 @@ if [ "$ODL_CONTAINERIZED" == 'false' ]; then -v NODE_STOP_COMMAND:'sudo systemctl stop opendaylight_api' \ -v NODE_FREEZE_COMMAND:'sudo systemctl stop opendaylight_api' " else - EXTRA_ROBOT_ARGS+=" -v NODE_KARAF_COUNT_COMMAND:\"sudo docker exec opendaylight_api /bin/bash -c 'ps axf | \ - grep org.apache.karaf | grep -v grep | wc -l' || echo 0\" \ - -v NODE_START_COMMAND:\"sudo docker start opendaylight_api\" \ - -v NODE_KILL_COMMAND:\"sudo docker stop opendaylight_api\" \ - -v NODE_STOP_COMMAND:\"sudo docker stop opendaylight_api\" \ - -v NODE_FREEZE_COMMAND:\"sudo docker stop opendaylight_api\" " + EXTRA_ROBOT_ARGS+=" -v NODE_KARAF_COUNT_COMMAND:'sudo docker ps | grep opendaylight_api | wc -l || echo 0' \ + -v NODE_START_COMMAND:'sudo docker start opendaylight_api' \ + -v NODE_KILL_COMMAND:'sudo docker stop opendaylight_api' \ + -v NODE_STOP_COMMAND:'sudo docker stop opendaylight_api' \ + -v NODE_FREEZE_COMMAND:'sudo docker stop opendaylight_api' " fi +# FIXME(trozet) remove this once it is fixed in csit +# Upload glance image into openstack +wget -O ${WORKSPACE}/cirros-0.3.5-x86_64-disk.img http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img +export ANSIBLE_HOST_KEY_CHECKING=False +ansible-playbook -i ${CONTROLLER_1_IP}, -u heat-admin --key-file ${WORKSPACE}/id_rsa ${REL_PATH}/cirros-upload.yaml.ansible --ssh-extra-args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' -vvv + LOGS_LOCATION=/tmp/robot_results robot_cmd="pybot \ --removekeywords wuks \ --xunit robotxunit.xml \ - -c critical \ + --name 'CSIT' \ -e exclude \ -d $LOGS_LOCATION \ -v BUNDLEFOLDER:/opt/opendaylight \ @@ -80,15 +106,21 @@ robot_cmd="pybot \ -v DEFAULT_LINUX_PROMPT_STRICT:]\$ \ -v DEFAULT_USER:heat-admin \ -v DEVSTACK_DEPLOY_PATH:/tmp \ + -v EXTERNAL_GATEWAY:$CONTROLLER_1_IP \ + -v EXTERNAL_PNF:$CONTROLLER_1_IP \ + -v EXTERNAL_SUBNET:192.0.2.0/24 \ + -v EXTERNAL_SUBNET_ALLOCATION_POOL:start=192.0.2.100,end=192.0.2.200 \ + -v EXTERNAL_INTERNET_ADDR:$CONTROLLER_1_IP \ -v HA_PROXY_IP:$SDN_CONTROLLER_IP \ -v NUM_ODL_SYSTEM:$NUM_CONTROL_NODES \ - -v NUM_OS_SYSTEM:$NUM_CONTROL_NODES \ + -v NUM_OS_SYSTEM:$(($NUM_CONTROL_NODES + $NUM_COMPUTE_NODES)) \ -v NUM_TOOLS_SYSTEM:0 \ -v ODL_SNAT_MODE:conntrack \ -v ODL_STREAM:$ODL_STREAM \ -v ODL_SYSTEM_IP:$CONTROLLER_1_IP \ -v OS_CONTROL_NODE_IP:$CONTROLLER_1_IP \ -v OPENSTACK_BRANCH:$FULL_OS_VER \ + -v OPENSTACK_TOPO:$OPENSTACK_TOPO \ -v OS_USER:heat-admin \ -v ODL_ENABLE_L3_FWD:yes \ -v ODL_SYSTEM_USER:heat-admin \ @@ -109,6 +141,34 @@ robot_cmd="pybot \ $EXTRA_ROBOT_ARGS \ -v of_port:6653 " +SUITE_HOME='/home/opnfv/repos/odl_test/csit/suites' + +# Disabled suites +# +# ${SUITE_HOME}/netvirt/vpnservice/vpn_basic_ipv6.robot +# This suite fails with an error indicating the connection was closed +# to the overcloud control node: +# https://build.opnfv.org/ci/job/cperf-apex-csit-master/104/consoleFull +# +# Minimize HA CSIT as it does not pass all suites +if [ "$NUM_CONTROL_NODES" -eq 3 ]; then + suites="${SUITE_HOME}/openstack/connectivity/l2.robot \ + ${SUITE_HOME}/openstack/connectivity/l3.robot" +else + suites="${SUITE_HOME}/openstack/connectivity/l2.robot \ + ${SUITE_HOME}/openstack/connectivity/l3.robot \ + ${SUITE_HOME}/openstack/connectivity/live_migration.robot \ + ${SUITE_HOME}/openstack/connectivity/external_network.robot \ + ${SUITE_HOME}/openstack/connectivity/security_group.robot \ + ${SUITE_HOME}/openstack/securitygroup/neutron_security_group.robot \ + ${SUITE_HOME}/openstack/securitygroup/security_group_l3bcast.robot \ + ${SUITE_HOME}/netvirt/vpnservice/vpn_basic.robot \ + ${SUITE_HOME}/netvirt/elan/elan.robot \ + ${SUITE_HOME}/netvirt/vpnservice/arp_learning.robot \ + ${SUITE_HOME}/netvirt/l2l3_gatewaymac_arp.robot \ + ${SUITE_HOME}/integration/Create_JVM_Plots.robot" +fi + echo "Robot command set: ${robot_cmd}" echo "Running robot..." docker run -i --net=host \ @@ -117,7 +177,9 @@ docker run -i --net=host \ -v ${WORKSPACE}/overcloudrc:/tmp/overcloudrc \ opnfv/cperf:$DOCKER_TAG \ /bin/bash -c "source /tmp/overcloudrc; mkdir -p \$HOME/.ssh; cp /tmp/id_rsa \$HOME/.ssh; \ - $robot_cmd /home/opnfv/repos/odl_test/csit/suites/openstack/connectivity/l2.robot;" + cd /home/opnfv/repos/odl_test/ && git pull origin master; \ + pip install odltools; \ + ${robot_cmd} ${suites};" -UPLOAD_LOCATION=artifacts.opnfv.org/cperf/cperf-apex-csit-${ODL_BRANCH}/${BUILD_NUMBER}/ -gsutil -m cp -r ${LOGS_LOCATION} gs://${UPLOAD_LOCATION} > gsutil.latest_logs.log \ No newline at end of file +echo "Running post CSIT clean" +ansible-playbook -i ${CONTROLLER_1_IP}, -u heat-admin --key-file ${WORKSPACE}/id_rsa ${REL_PATH}/csit-clean.yaml.ansible --ssh-extra-args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' -vvv