X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Fci%2Fyardstick-verify;h=149eef42909fec7f8ca2f7ac2ac95f9751bed585;hb=d9aba00385c7890a7436837e0a4ac4d0b81c8a32;hp=8f67b9ffb02e894f15da6967803897d7eedaeff1;hpb=b2cebae3cab11b97771344cb689babf71a691d2c;p=yardstick.git diff --git a/tests/ci/yardstick-verify b/tests/ci/yardstick-verify index 8f67b9ffb..149eef429 100755 --- a/tests/ci/yardstick-verify +++ b/tests/ci/yardstick-verify @@ -34,6 +34,7 @@ OPTIONS: -h Show this message -r Http target (example: -r 213.77.62.197/results) -i Influxdb target (example: -i 127.0.0.1:8086) + -m Reporting target (example: -m 213.77.62.197/results) Default target is dump to file ($DISPATCHER_FILE_NAME) @@ -44,8 +45,9 @@ DISPATCHER_TYPE=file DISPATCHER_FILE_NAME="/tmp/yardstick.out" DISPATCHER_HTTP_TARGET="http://testresults.opnfv.org/test/api/v1/results" DISPATCHER_INFLUXDB_TARGET= +REPORTING_TARGET="${DISPATCHER_HTTP_TARGET}" -while getopts "r:i:h" OPTION; do +while getopts "r:i:m:h" OPTION; do case $OPTION in h) usage @@ -61,6 +63,9 @@ while getopts "r:i:h" OPTION; do DISPATCHER_INFLUXDB_TARGET=http://${OPTARG} DISPATCHER_FILE_NAME= ;; + m) + REPORTING_TARGET=http://${OPTARG} + ;; *) echo "${OPTION} is not a valid argument" exit 1 @@ -71,23 +76,6 @@ done shift $[OPTIND - 1] TEST_SUITES=$@ -cleanup() -{ - echo - echo "========== Cleanup ==========" - - if ! glance image-list; then - return - fi - - for image in $(glance image-list | grep -e cirros-0.3.3 -e yardstick-trusty-server -e Ubuntu-14.04 | awk '{print $2}'); do - echo "Deleting image $image..." - glance image-delete $image || true - done - - nova flavor-delete yardstick-flavor &> /dev/null || true -} - exitcode="" error_exit() @@ -109,22 +97,10 @@ error_exit() set -o errexit set -o pipefail -install_yardstick() -{ - echo - echo "========== Installing yardstick ==========" - - # uninstall previous version - pip uninstall -y yardstick || true - - # Install yardstick - pip install . -} - install_storperf() { - # Install Storper on huawei-pod1 - if [ "$NODE_NAME" == "huawei-pod1" ]; then + # Install Storper on huawei-pod1 and huawei-pod2 + if [ "$NODE_NAME" == "huawei-pod1" -o "$NODE_NAME" == "huawei-pod2" ]; then echo echo "========== Installing storperf ==========" @@ -133,110 +109,41 @@ install_storperf() exit 1 fi - echo - echo "========== Installed storperf container ==========" fi } -build_yardstick_image() +remove_storperf() { - echo - echo "========== Build yardstick cloud image ==========" - - local cmd="sudo $(which yardstick-img-modify) $(pwd)/tools/ubuntu-server-cloudimg-modify.sh" - - # Build the image. Retry once if the build fails. - $cmd || $cmd - - if [ ! -f $QCOW_IMAGE ]; then - echo "Failed building QCOW image" - exit 1 - fi -} - -create_nova_flavor() -{ - if ! nova flavor-list | grep -q yardstick-flavor; then + # remove Storper from huawei-pod1 and huawei-pod2 + if [ "$NODE_NAME" == "huawei-pod1" -o "$NODE_NAME" == "huawei-pod2" ]; then echo - echo "========== Create nova flavor ==========" - # Create the nova flavor used by some sample test cases - nova flavor-create yardstick-flavor 100 512 3 1 - # DPDK-enabled OVS requires guest memory to be backed by large pages - if [[ "$DEPLOY_SCENARIO" == *"-ovs-"* ]]; then - nova flavor-key yardstick-flavor set hw:mem_page_size=large - fi - fi -} - -load_cirros_image() -{ - echo - echo "========== Loading cirros cloud image ==========" + echo "========== Removing storperf ==========" - local image_file=/home/opnfv/images/cirros-0.3.3-x86_64-disk.img - - output=$(glance image-create \ - --name cirros-0.3.3 \ - --disk-format qcow2 \ - --container-format bare \ - --file $image_file) - echo "$output" + if ! yardstick -d plugin remove plugin/CI/storperf.yaml; then + echo "Remove storperf plugin FAILED"; + exit 1 + fi - CIRROS_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}') - if [ -z "$CIRROS_IMAGE_ID" ]; then - echo 'Failed uploading cirros image to cloud'. - exit 1 fi - - echo "Cirros image id: $CIRROS_IMAGE_ID" } -load_ubuntu_image() -{ - echo - echo "========== Loading ubuntu cloud image ==========" - - local ubuntu_image_file=/home/opnfv/images/trusty-server-cloudimg-amd64-disk1.img - - output=$(glance image-create \ - --name Ubuntu-14.04 \ - --disk-format qcow2 \ - --container-format bare \ - --file $ubuntu_image_file) - echo "$output" - - UBUNTU_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}') - - if [ -z "$UBUNTU_IMAGE_ID" ]; then - echo 'Failed uploading UBUNTU image to cloud'. - exit 1 - fi - - echo "Ubuntu image id: $UBUNTU_IMAGE_ID" -} +report(){ -load_yardstick_image() -{ echo - echo "========== Loading yardstick cloud image ==========" - - output=$(glance --os-image-api-version 1 image-create \ - --name yardstick-trusty-server \ - --is-public true --disk-format qcow2 \ - --container-format bare \ - --file $QCOW_IMAGE) - echo "$output" - - GLANCE_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}') - - if [ -z "$GLANCE_IMAGE_ID" ]; then - echo 'Failed uploading image to cloud'. - exit 1 - fi - - sudo rm -f $QCOW_IMAGE - - echo "Glance image id: $GLANCE_IMAGE_ID" + echo "========== Reporting Status ==========" + curl -i -H 'content-type: application/json' -X POST -d \ + "{\"project_name\": \"yardstick\", + \"case_name\": \"scenario_status\", + \"pod_name\":\"${NODE_NAME}\", + \"installer\":\"${INSTALLER_TYPE}\", + \"version\":\"$(basename ${YARDSTICK_BRANCH})\", + \"scenario\":\"${DEPLOY_SCENARIO}\", + \"description\": \"yardstick ci scenario status\", + \"criteria\":\"${1}\", + \"start_date\":\"${2}\", + \"stop_date\":\"${3}\", + \"details\":\"\"}" \ + "${REPORTING_TARGET}" } run_test() @@ -246,9 +153,9 @@ run_test() mkdir -p /etc/yardstick - cat << EOF >> /etc/yardstick/yardstick.conf + cat << EOF > /etc/yardstick/yardstick.conf [DEFAULT] -debug = True +debug = False dispatcher = ${DISPATCHER_TYPE} [dispatcher_file] @@ -283,7 +190,7 @@ EOF # Mark the test suite failed but continue # running the remaining test suites. - (( failed++ )) + (( ++failed )) fi if [ ${DISPATCHER_TYPE} = file ]; then echo "---------------------------" @@ -300,23 +207,13 @@ EOF - local sceanrio_status="SUCCESS" + local scenario_status="SUCCESS" if [ $failed -gt 0 ]; then scenario_status="FAILED" fi - curl -i -H 'content-type: application/json' -X POST -d \ - "{\"project_name\": \"yardstick\", - \"case_name\": \"scenario_status\", - \"pod_name\":\"${NODE_NAME}\", - \"installer\":\"${INSTALLER_TYPE}\", - \"version\":\"${YARDSTICK_BRANCH}\", - \"scenario\":\"${DEPLOY_SCENARIO}\", - \"description\": \"yardstick ci scenario status\", - \"start_date\":\"${start_date}\", - \"stop_date\":\"${stop_date}\", - \"details\":\"${sceanrio_status}\"}" \ - ${DISPATCHER_HTTP_TARGET} + + report "${scenario_status}" "${start_date}" "${stop_date}" if [ $failed -gt 0 ]; then echo "---------------------------" @@ -397,8 +294,8 @@ main() # check OpenStack services echo "Checking OpenStack services:" - for cmd in "glance image-list" "nova list" "heat stack-list"; do - echo " checking ${cmd/%\ */} ..." + for cmd in "openstack image list" "openstack server list" "openstack stack list"; do + echo " checking ${cmd} ..." if ! $cmd >/dev/null; then echo "error: command \"$cmd\" failed" exit 1 @@ -407,27 +304,18 @@ main() echo echo "Checking for External network:" - for net in $(neutron net-list --router:external True -c name -f value); do + for net in $(openstack network list --external -c Name -f value); do echo " external network: $net" done - # install yardstick - install_yardstick - - cleanup + source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh trap "error_exit" EXIT SIGTERM - QCOW_IMAGE="/tmp/workspace/yardstick/yardstick-trusty-server.img" - - build_yardstick_image - load_yardstick_image - load_cirros_image - load_ubuntu_image - create_nova_flavor - + source $YARDSTICK_REPO_DIR/tests/ci/load_images.sh install_storperf run_test + remove_storperf } main