Ansible: Speed up by pipelining
[csit.git] / resources / libraries / bash / function / common.sh
index eb7cee9..f89f71d 100644 (file)
@@ -411,7 +411,8 @@ function generate_tests () {
     cp -r "${CSIT_DIR}/tests" "${GENERATED_DIR}/tests" || die
     cmd_line=("find" "${GENERATED_DIR}/tests" "-type" "f")
     cmd_line+=("-executable" "-name" "*.py")
-    file_list=$("${cmd_line[@]}") || die
+    # We sort the directories, so log output can be compared between runs.
+    file_list=$("${cmd_line[@]}" | sort) || die
 
     for gen in ${file_list}; do
         directory="$(dirname "${gen}")" || die
@@ -560,7 +561,7 @@ function reserve_and_cleanup_testbed () {
     # - 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
+    # - ansible_playbook - Perform an action using ansible, see ansible.sh
     # Traps registered:
     # - EXIT - Calls cancel_all for ${WORKING_TOPOLOGY}.
 
@@ -587,9 +588,9 @@ function reserve_and_cleanup_testbed () {
                     }
                     die "Trap attempt failed, unreserve succeeded. Aborting."
                 }
-                # Cleanup check.
+                # Cleanup + calibration checks.
                 set +e
-                ansible_hosts "cleanup"
+                ansible_playbook "cleanup, calibration"
                 result="$?"
                 set -e
                 if [[ "${result}" == "0" ]]; then
@@ -753,6 +754,14 @@ function select_tags () {
     esac
 
     sed_nic_sub_cmd="sed s/\${default_nic}/${default_nic}/"
+    sed_nics_sub_cmd="sed -e s/ANDxxv710/ANDnic_intel-xxv710/"
+    sed_nics_sub_cmd+=" | sed -e s/ANDx710/ANDnic_intel-x710/"
+    sed_nics_sub_cmd+=" | sed -e s/ANDxl710/ANDnic_intel-xl710/"
+    sed_nics_sub_cmd+=" | sed -e s/ANDx520-da2/ANDnic_intel-x520-da2/"
+    sed_nics_sub_cmd+=" | sed -e s/ANDx553/ANDnic_intel-x553/"
+    sed_nics_sub_cmd+=" | sed -e s/ANDcx556a/ANDnic_mellanox-cx556a/"
+    sed_nics_sub_cmd+=" | sed -e s/ANDvic1227/ANDnic_cisco-vic-1227/"
+    sed_nics_sub_cmd+=" | sed -e s/ANDvic1385/ANDnic_cisco-vic-1385/"
     # Tag file directory shorthand.
     tfd="${BASH_FUNCTION_DIR}"
     case "${TEST_CODE}" in
@@ -761,8 +770,9 @@ function select_tags () {
             readarray -t test_tag_array < "${tfd}/mlr-weekly.txt" || die
             ;;
         *"mrr-daily"* )
-            readarray -t test_tag_array <<< $(${sed_nic_sub_cmd} \
-                ${tfd}/mrr-daily-${FLAVOR}.txt) || die
+            readarray -t test_tag_array <<< $(sed 's/ //g' \
+                ${tfd}/mrr-daily-${NODENESS}-${FLAVOR}.txt |
+                eval ${sed_nics_sub_cmd}) || die
             ;;
         *"mrr-weekly"* )
             readarray -t test_tag_array <<< $(${sed_nic_sub_cmd} \
@@ -1023,7 +1033,7 @@ function untrap_and_unreserve_testbed () {
     # - 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
+    # - ansible_playbook - Perform an action using ansible, see ansible.sh
 
     set -xo pipefail
     set +eu  # We do not want to exit early in a "teardown" function.
@@ -1033,7 +1043,7 @@ function untrap_and_unreserve_testbed () {
         set -eu
         warn "Testbed looks unreserved already. Trap removal failed before?"
     else
-        ansible_hosts "cleanup" || true
+        ansible_playbook "cleanup" || true
         python3 "${PYTHON_SCRIPTS_DIR}/topo_reservation.py" -c -t "${wt}" || {
             die "${1:-FAILED TO UNRESERVE, FIX MANUALLY.}" 2
         }