aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/base/booking
ModeNameSize
-rw-r--r--booking_calendar.html9390logstatsplain
-rw-r--r--booking_delete.html307logstatsplain
-rw-r--r--booking_detail.html14479logstatsplain
-rw-r--r--booking_grid_item.html302logstatsplain
-rw-r--r--booking_list.html1448logstatsplain
-rw-r--r--booking_table.html663logstatsplain
-rw-r--r--quick_deploy.html5788logstatsplain
-rw-r--r--stats.html2391logstatsplain
d---------steps45logstatsplain
a id='n235' href='#n235'>235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333
#!/bin/bash
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

#
# Set up the environment and run yardstick test suites.
#
# Example invocation: yardstick-verify -r 10.4.4.4 suite1.yaml suite2.yaml
#
# Openstack credentials must be set and the script must be run from its
# original location in the yardstick repo.
#
# This script is intended to be used by the CI pipeline but it may also
# be invoked manually.
#

SCRIPT=$0
SCRIPT_ARGS=$@

usage()
{
    cat << EOF
usage: $0 options [TEST_SUITE ...]

If no test suites are given ping.yaml is run.

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)

           Default target is dump to file ($DISPATCHER_FILE_NAME)

EOF
}

DISPATCHER_TYPE=file
DISPATCHER_FILE_NAME="/tmp/yardstick.out"
DISPATCHER_HTTP_TARGET="http://testresults.opnfv.org/test/api/v1/results"
DISPATCHER_INFLUXDB_TARGET=

while getopts "r:i:h" OPTION; do
    case $OPTION in
        h)
            usage
            exit 0
            ;;
        r)
            DISPATCHER_TYPE=http
            DISPATCHER_HTTP_TARGET=http://${OPTARG}
            DISPATCHER_FILE_NAME=
            ;;
        i)
            DISPATCHER_TYPE=influxdb
            DISPATCHER_INFLUXDB_TARGET=http://${OPTARG}
            DISPATCHER_FILE_NAME=
            ;;
        *)
            echo "${OPTION} is not a valid argument"
            exit 1
            ;;
    esac
done

shift $[OPTIND - 1]
TEST_SUITES=$@

exitcode=""

error_exit()
{
    local rc=$?

    if [ -z "$exitcode" ]; then
        # In case of recursive traps (!?)
        exitcode=$rc
    fi

    cleanup

    echo "Exiting with RC=$exitcode"

    exit $exitcode
}

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
        echo
        echo "========== Installing storperf =========="

        if ! yardstick -d plugin install plugin/CI/storperf.yaml; then
            echo "Install storperf plugin FAILED";
            exit 1
        fi

    fi
}

remove_storperf()
{
    # remove Storper from huawei-pod1
    if [ "$NODE_NAME" == "huawei-pod1" ]; then
        echo
        echo "========== Removing storperf =========="

        if ! yardstick -d plugin remove plugin/CI/storperf.yaml; then
            echo "Remove storperf plugin FAILED";
            exit 1
        fi

    fi
}

report(){

    echo
    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\":\"\"}" \
          ${DISPATCHER_HTTP_TARGET}
}

run_test()
{
    echo
    echo "========== Running yardstick test suites =========="

    mkdir -p /etc/yardstick

    cat << EOF >> /etc/yardstick/yardstick.conf
[DEFAULT]
debug = True
dispatcher = ${DISPATCHER_TYPE}

[dispatcher_file]
file_name = ${DISPATCHER_FILE_NAME}

[dispatcher_http]
timeout = 5
target = ${DISPATCHER_HTTP_TARGET}

[dispatcher_influxdb]
timeout = 5
target = ${DISPATCHER_INFLUXDB_TARGET}
db_name = yardstick
username = opnfv
password = 0pnfv2015
EOF

    local failed=0
    local start_date
    local stop_date

    if [ ${#SUITE_FILES[@]} -gt 0 ]; then

        start_date=$(date '+%Y-%m-%d %H:%M:%S')
        for suite in ${SUITE_FILES[*]}; do

            echo "---------------------------"
            echo "Running test suite: $suite"
            echo "---------------------------"
            if ! yardstick task start --suite $suite; then
                 echo "test suite $suite FAILED";

                # Mark the test suite failed but continue
                # running the remaining test suites.
                (( ++failed ))
            fi
            if [ ${DISPATCHER_TYPE} = file ]; then
                echo "---------------------------"
                echo "Dump test suite $suite result"
                echo "---------------------------"
                if [ -f ${DISPATCHER_FILE_NAME} ]; then
                    cat ${DISPATCHER_FILE_NAME}
                else
                    echo "Test result file ${DISPATCHER_FILE_NAME} is not exist"
                fi
            fi
        done
        stop_date=$(date '+%Y-%m-%d %H:%M:%S')



        local scenario_status="SUCCESS"

        if [ $failed -gt 0 ]; then
            scenario_status="FAILED"
        fi

        report $scenario_status $start_date $stop_date

        if [ $failed -gt 0 ]; then
            echo "---------------------------"
            echo "$failed out of ${SUITE_FILES[*]} test suites FAILED"
            echo "---------------------------"
            exit 1
        fi

    else

        echo "---------------------------"
        echo "Running samples/ping.yaml  "
        echo "---------------------------"

        if ! yardstick task start samples/ping.yaml; then
            echo "Yardstick test FAILED"
            exit 1
        fi

        if [ ${DISPATCHER_TYPE} = file ]; then
            echo "---------------------------"
            echo "Dump samples/ping.yaml test result"
            echo "---------------------------"
            if [ -f ${DISPATCHER_FILE_NAME} ]; then
                cat ${DISPATCHER_FILE_NAME}
            else
                echo "Test result file ${DISPATCHER_FILE_NAME} is not exist"
            fi
        fi

    fi

}

main()
{
    GITROOT=$(cd $(dirname $0) && git rev-parse --show-toplevel)

    cd $GITROOT

    export YARDSTICK_VERSION=$(git rev-parse HEAD)

    SUITE_FILES=()

    # find the test suite files
    for suite in $TEST_SUITES; do
        if [ -f $suite ]; then
            SUITE_FILES+=($suite)
        else
            tsdir=$GITROOT/tests/opnfv/test_suites
            if [ ! -f $tsdir/$suite ]; then
                echo "Test suite \"$suite\" does not exist"
                exit 1
            fi
            SUITE_FILES+=($tsdir/$suite)
        fi
    done

    echo
    echo "========== Running Yardstick CI with following parameters =========="
    echo "Script options: ${SCRIPT} $SCRIPT_ARGS"
    echo "Dispatcher: ${DISPATCHER_TYPE} ${DISPATCHER_FILE_NAME}"
    echo "YARDSTICK_VERSION: ${YARDSTICK_VERSION}"
    echo "Number of test suites: ${#SUITE_FILES[@]}"
    for suite in ${SUITE_FILES[*]}; do
        echo "     $suite"
    done
    echo

    # check if some necessary variables is set
    if [ -z "$OS_AUTH_URL" ]; then
        echo "OS_AUTH_URL is unset or empty"
        exit 1
    fi

    echo "OS_AUTH_URL is $OS_AUTH_URL"
    echo

    # check OpenStack services
    echo "Checking OpenStack services:"
    for cmd in "glance image-list" "nova list" "heat stack-list"; do
        echo "  checking ${cmd/%\ */} ..."
        if ! $cmd >/dev/null; then
            echo "error: command \"$cmd\" failed"
            exit 1
        fi
    done

    echo
    echo "Checking for External network:"
    for net in $(neutron net-list --router:external True -c name -f value); do
        echo "  external network: $net"
    done

    # install yardstick
    install_yardstick

    source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh

    cleanup

    trap "error_exit" EXIT SIGTERM

    source $YARDSTICK_REPO_DIR/tests/ci/load_images.sh
    install_storperf
    run_test
    remove_storperf
}

main