3n-tsh timeout, testbed tags and ansible update
[csit.git] / resources / libraries / bash / function / common.sh
index 549688f..89c8f31 100644 (file)
@@ -286,6 +286,31 @@ function compose_pybot_arguments () {
 }
 
 
+function copy_archives () {
+
+    # Create additional archive if workspace variable is set.
+    # This way if script is running in jenkins all will be
+    # automatically archived to logs.fd.io.
+    #
+    # Variables read:
+    # - WORKSPACE - Jenkins workspace, copy only if the value is not empty.
+    #   Can be unset, then it speeds up manual testing.
+    # - ARCHIVE_DIR - Path to directory with content to be copied.
+    # Directories updated:
+    # - ${WORKSPACE}/archives/ - Created if does not exist.
+    #   Content of ${ARCHIVE_DIR}/ is copied here.
+    # Functions called:
+    # - die - Print to stderr and exit.
+
+    set -exuo pipefail
+
+    if [[ -n "${WORKSPACE-}" ]]; then
+        mkdir -p "${WORKSPACE}/archives/" || die "Archives dir create failed."
+        cp -rf "${ARCHIVE_DIR}"/* "${WORKSPACE}/archives" || die "Copy failed."
+    fi
+}
+
+
 function deactivate_docker_topology () {
 
     # Deactivate virtual vpp-device topology by removing containers.
@@ -623,7 +648,7 @@ function run_pybot () {
 }
 
 
-function select_os () {
+function select_arch_os () {
 
     # Populate variables related to local operating system.
     #
@@ -653,7 +678,19 @@ function select_os () {
             PKG_SUFFIX="rpm"
             ;;
         *)
-            die "Unable to identify distro or os from ${OS}"
+            die "Unable to identify distro or os from ${os_id}"
+            ;;
+    esac
+
+    arch=$(uname -m) || {
+        die "Get CPU architecture failed."
+    }
+
+    case "${arch}" in
+        "aarch64")
+            IMAGE_VER_FILE="${IMAGE_VER_FILE}_ARM"
+            ;;
+        *)
             ;;
     esac
 }
@@ -702,6 +739,7 @@ function select_tags () {
             ;;
     esac
 
+    sed_nic_sub_cmd="sed s/\${default_nic}/${default_nic}/"
     # Tag file directory shorthand.
     tfd="${BASH_FUNCTION_DIR}"
     case "${TEST_CODE}" in
@@ -710,8 +748,8 @@ function select_tags () {
             readarray -t test_tag_array < "${tfd}/mlr-weekly.txt" || die
             ;;
         *"mrr-daily"* )
-            readarray -t test_tag_array < \
-                "${tfd}/mrr-daily-${FLAVOR}.txt" || die
+            readarray -t test_tag_array <<< $(${sed_nic_sub_cmd} \
+                ${tfd}/mrr-daily-${FLAVOR}.txt) || die
             ;;
         *"mrr-weekly"* )
             readarray -t test_tag_array < "${tfd}/mrr-weekly.txt" || die
@@ -762,11 +800,9 @@ function select_tags () {
             test_tag_array+=("!drv_avf")
             ;;
         *"3n-tsh"*)
+            # 3n-tsh only has x520 NICs which don't work with AVF
+            test_tag_array+=("!drv_avf")
             test_tag_array+=("!ipsechw")
-            test_tag_array+=("!memif")
-            test_tag_array+=("!srv6_proxy")
-            test_tag_array+=("!vhost")
-            test_tag_array+=("!vts")
             ;;
         *"3n-hsw"*)
             # TODO: Introduce NOIOMMU version of AVF tests.
@@ -867,7 +903,7 @@ function select_topology () {
             ;;
         "3n_tsh")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_tsh*.yaml )
-            TOPOLOGIES_TAGS="3_node_*_link_topo"
+            TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
         *)
             # No falling back to 3n_hsw default, that should have been done