diff --git a/stack.sh b/stack.sh index e9831d5039..abd6a4d11e 100755 --- a/stack.sh +++ b/stack.sh @@ -42,6 +42,8 @@ if [[ -n "$NOUNSET" ]]; then set -o nounset fi +# Set start of devstack timestamp +DEVSTACK_START_TIME=$(date +%s) # Configuration # ============= @@ -481,11 +483,14 @@ function exit_trap { if [[ $r -ne 0 ]]; then echo "Error on exit" + generate-subunit $DEVSTACK_START_TIME $SECONDS 'fail' >> ${SUBUNIT_OUTPUT} if [[ -z $LOGDIR ]]; then $TOP_DIR/tools/worlddump.py else $TOP_DIR/tools/worlddump.py -d $LOGDIR fi + else + generate-subunit $DEVSTACK_START_TIME $SECONDS >> ${SUBUNIT_OUTPUT} fi exit $r @@ -710,6 +715,9 @@ if [[ "$OFFLINE" != "True" ]]; then PYPI_ALTERNATIVE_URL=${PYPI_ALTERNATIVE_URL:-""} $TOP_DIR/tools/install_pip.sh fi +# Install subunit for the subunit output stream +pip_install -U os-testr + TRACK_DEPENDS=${TRACK_DEPENDS:-False} # Install Python packages into a virtualenv so that we can track them diff --git a/stackrc b/stackrc index 1786a44ff3..58146a4a1c 100644 --- a/stackrc +++ b/stackrc @@ -29,6 +29,9 @@ DATA_DIR=${DEST}/data # Destination for status files SERVICE_DIR=${DEST}/status +# Path for subunit output file +SUBUNIT_OUTPUT=${DEST}/devstack.subunit + # Determine stack user if [[ $EUID -eq 0 ]]; then STACK_USER=stack