*"device"*)
# On parsing error, ${trigger} stays empty.
trigger="$(echo "${GERRIT_EVENT_COMMENT_TEXT}" \
- | grep -oE '(devicetest$|devicetest[[:space:]].+$)')" \
- || true
+ | grep -oE '(devicetest$|devicetest[[:space:]].+$)' \
+ || true)"
# Set test tags as string.
TEST_TAG_STRING="${trigger#$"devicetest"}"
;;
# - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed.
# Functions called:
# - die - Print to stderr and exit.
+ # - ansible_hosts - Perform an action using ansible, see ansible.sh
# Traps registered:
# - EXIT - Calls cancel_all for ${WORKING_TOPOLOGY}.
}
# Cleanup check.
set +e
- cleanup_topo
+ ansible_hosts "cleanup"
result="$?"
set -e
if [[ "${result}" == "0" ]]; then
*"3n-skx"* | *"2n-skx"* | *"2n-clx"*)
default_nic="nic_intel-xxv710"
;;
- *"3n-hsw"*)
+ *"3n-hsw"* | *"mrr-daily-master")
default_nic="nic_intel-xl710"
;;
*)
if [[ "${tag}" == "!"* ]]; then
# Exclude tags are not prefixed.
TAGS+=("${tag}")
+ elif [[ "${tag}" == " "* || "${tag}" == *"perftest"* ]]; then
+ # Badly formed tag expressions can trigger way too much tests.
+ set -x
+ warn "The following tag expression hints at bad trigger: ${tag}"
+ warn "Possible cause: Multiple triggers in a single comment."
+ die "Aborting to avoid triggering too many tests."
elif [[ "${tag}" != "" && "${tag}" != "#"* ]]; then
# Empty and comment lines are skipped.
# Other lines are normal tags, they are to be prefixed.
# - EXIT - Failure to untrap is reported, but ignored otherwise.
# Functions called:
# - die - Print to stderr and exit.
+ # - ansible_hosts - Perform an action using ansible, see ansible.sh
set -xo pipefail
set +eu # We do not want to exit early in a "teardown" function.
set -eu
warn "Testbed looks unreserved already. Trap removal failed before?"
else
- cleanup_topo || true
+ ansible_hosts "cleanup" || true
python "${PYTHON_SCRIPTS_DIR}/topo_reservation.py" -c -t "${wt}" || {
die "${1:-FAILED TO UNRESERVE, FIX MANUALLY.}" 2
}