Codebase list gnocchi / c502ea09-0901-46c3-aece-3abb7765537f/main run-func-tests.sh
c502ea09-0901-46c3-aece-3abb7765537f/main

Tree @c502ea09-0901-46c3-aece-3abb7765537f/main (Download .tar.gz)

run-func-tests.sh @c502ea09-0901-46c3-aece-3abb7765537f/mainraw · history · blame

#!/bin/bash -x
set -e

cleanup(){
    type -t indexer_stop >/dev/null && indexer_stop || true
    type -t storage_stop >/dev/null && storage_stop || true
}
trap cleanup EXIT

check_empty_var() {
    local x=$(eval echo `echo \\$${1}`)
    if [ -z "$x" ]; then
        echo "Variable \$${1} is unset"
        exit 15
    fi
}

GNOCCHI_TEST_STORAGE_DRIVERS=${GNOCCHI_TEST_STORAGE_DRIVERS:-file}
GNOCCHI_TEST_INDEXER_DRIVERS=${GNOCCHI_TEST_INDEXER_DRIVERS:-postgresql}
for storage in ${GNOCCHI_TEST_STORAGE_DRIVERS}; do
    if [ "$storage" == "swift" ]; then
        echo "WARNING: swift does not support python 3 skipping"
        continue
    fi
    for indexer in ${GNOCCHI_TEST_INDEXER_DRIVERS}; do
        unset STORAGE_URL
        unset INDEXER_URL
        case $storage in
            ceph)
                eval $(pifpaf -e STORAGE run ceph)
                check_empty_var STORAGE_URL
                rados -c $STORAGE_CEPH_CONF mkpool gnocchi
                STORAGE_URL=ceph://$STORAGE_CEPH_CONF
                ;;
            s3)
                if ! which s3rver >/dev/null 2>&1
                then
                    mkdir -p npm-s3rver
                    export NPM_CONFIG_PREFIX=npm-s3rver
                    npm install s3rver --global
                    export PATH=$PWD/npm-s3rver/bin:$PATH
                fi
                eval $(pifpaf -e STORAGE run s3rver)
                ;;
            file)
                STORAGE_URL=file://
                ;;

            swift|redis)
                eval $(pifpaf -e STORAGE run $storage)
                ;;
            *)
                echo "Unsupported storage backend by functional tests: $storage"
                exit 1
                ;;
        esac

        check_empty_var STORAGE_URL

        eval $(pifpaf -e INDEXER run $indexer)
        check_empty_var INDEXER_URL

        export GNOCCHI_SERVICE_TOKEN="" # Just make gabbi happy
        export GNOCCHI_AUTHORIZATION="basic YWRtaW46" # admin in base64
        export GNOCCHI_TEST_PATH=gnocchi/tests/functional_live
        pifpaf -e GNOCCHI run gnocchi --indexer-url $INDEXER_URL --storage-url $STORAGE_URL --coordination-driver redis -- ./tools/pretty_tox.sh $*

        cleanup
    done
done