feat(core): Add 2n-spr topology
[csit.git] / resources / libraries / bash / function / common.sh
index 5b947b7..de290eb 100644 (file)
@@ -227,7 +227,7 @@ function common_dirs () {
     TOPOLOGIES_DIR=$(readlink -e "${CSIT_DIR}/topologies/available") || {
         die "Readlink failed."
     }
-    JOB_SPECS_DIR=$(readlink -e "${CSIT_DIR}/docs/job_specs") || {
+    JOB_SPECS_DIR=$(readlink -e "${CSIT_DIR}/resources/job_specs") || {
         die "Readlink failed."
     }
     RESOURCES_DIR=$(readlink -e "${CSIT_DIR}/resources") || {
@@ -467,10 +467,18 @@ function get_test_code () {
             NODENESS="2n"
             FLAVOR="icx"
             ;;
+        *"2n-spr"*)
+            NODENESS="2n"
+            FLAVOR="spr"
+            ;;
         *"3n-icx"*)
             NODENESS="3n"
             FLAVOR="icx"
             ;;
+        *"3n-spr"*)
+            NODENESS="3n"
+            FLAVOR="spr"
+            ;;
         *"3n-snr"*)
             NODENESS="3n"
             FLAVOR="snr"
@@ -632,6 +640,8 @@ function prepare_topology () {
     # - TEST_CODE - String affecting test selection, usually jenkins job name.
     # - NODENESS - Node multiplicity of testbed, either "2n" or "3n".
     # - FLAVOR - Node flavor string, e.g. "clx" or "skx".
+    # Variables set:
+    # - TERRAFORM_MODULE_DIR - Terraform module directory.
     # Functions called:
     # - die - Print to stderr and exit.
     # - terraform_init - Terraform init topology.
@@ -643,7 +653,11 @@ function prepare_topology () {
     case "${case_text}" in
         "1n_aws" | "2n_aws" | "3n_aws")
             export TF_VAR_testbed_name="${TEST_CODE}"
+            TERRAFORM_MODULE_DIR="terraform-aws-${NODENESS}-${FLAVOR}-c5n"
             terraform_init || die "Failed to call terraform init."
+            trap 'terraform_destroy' ERR || {
+                die "Trap attempt failed, please cleanup manually. Aborting!"
+            }
             terraform_apply || die "Failed to call terraform apply."
             ;;
     esac
@@ -854,10 +868,13 @@ function select_tags () {
         *"3n-icx"* | *"2n-icx"*)
             default_nic="nic_intel-xxv710"
             ;;
+        *"3n-spr"* | *"2n-spr"*)
+            default_nic="nic_intel-e810cq"
+            ;;
         *"2n-clx"* | *"2n-zn2"*)
             default_nic="nic_intel-xxv710"
             ;;
-        *"2n-tx2"* | *"3n-alt"* | *"mrr-daily-master")
+        *"2n-tx2"* | *"3n-alt"*)
             default_nic="nic_intel-xl710"
             ;;
         *"1n-aws"* | *"2n-aws"* | *"3n-aws"*)
@@ -875,6 +892,7 @@ function select_tags () {
     awk_nics_sub_cmd+='gsub("xl710","40ge2p1xl710");'
     awk_nics_sub_cmd+='gsub("x520-da2","10ge2p1x520");'
     awk_nics_sub_cmd+='gsub("cx556a","100ge2p1cx556a");'
+    awk_nics_sub_cmd+='gsub("cx7veat","200ge2p1cx7veat");'
     awk_nics_sub_cmd+='gsub("e810cq","100ge2p1e810cq");'
     awk_nics_sub_cmd+='gsub("vic1227","10ge2p1vic1227");'
     awk_nics_sub_cmd+='gsub("vic1385","40ge2p1vic1385");'
@@ -898,9 +916,15 @@ function select_tags () {
                 awk {"$awk_nics_sub_cmd"} || echo "devicetest") || die
             SELECTION_MODE="--test"
             ;;
+        *"hoststack-daily"* )
+            readarray -t test_tag_array <<< $(grep -v "#" \
+                ${tfd}/hoststack_daily/${DUT}-${NODENESS}-${FLAVOR}.md |
+                awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
+            SELECTION_MODE="--test"
+            ;;
         *"ndrpdr-weekly"* )
             readarray -t test_tag_array <<< $(grep -v "#" \
-                ${tfd}/mlr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md |
+                ${tfd}/ndrpdr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md |
                 awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
             SELECTION_MODE="--test"
             ;;
@@ -970,21 +994,28 @@ function select_tags () {
         *"2n-icx"*)
             test_tag_array+=("!ipsechw")
             ;;
-        *"3n-icx"*)
+        *"2n-spr"*)
+            test_tag_array+=("!ipsechw")
+            ;;
+        *"2n-tx2"*)
             test_tag_array+=("!ipsechw")
-            # Not enough nic_intel-xxv710 to support double link tests.
-            test_tag_array+=("!3_node_double_link_topoANDnic_intel-xxv710")
             ;;
         *"2n-zn2"*)
             test_tag_array+=("!ipsechw")
             ;;
-        *"2n-tx2"* | *"3n-alt"*)
+        *"3n-alt"*)
+            test_tag_array+=("!ipsechw")
+            ;;
+        *"3n-icx"*)
             test_tag_array+=("!ipsechw")
+            test_tag_array+=("!3_node_double_link_topoANDnic_intel-xxv710")
             ;;
         *"3n-snr"*)
             ;;
+        *"3n-spr"*)
+            test_tag_array+=("!ipsechw")
+            ;;
         *"3n-tsh"*)
-            # 3n-tsh only has x520 NICs which don't work with AVF
             test_tag_array+=("!drv_avf")
             test_tag_array+=("!ipsechw")
             ;;
@@ -1087,6 +1118,10 @@ function select_topology () {
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_icx*.yaml )
             TOPOLOGIES_TAGS="2_node_*_link_topo"
             ;;
+        "2n_spr")
+            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_spr*.yaml )
+            TOPOLOGIES_TAGS="2_node_*_link_topo"
+            ;;
         "3n_snr")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_snr*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
@@ -1169,7 +1204,8 @@ function untrap_and_unreserve_testbed () {
     # Variables read (by inner function):
     # - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed.
     # - PYTHON_SCRIPTS_DIR - Path to directory holding Python scripts.
-    # Variables written:
+    # Variables set:
+    # - TERRAFORM_MODULE_DIR - Terraform module directory.
     # - WORKING_TOPOLOGY - Set to empty string on successful unreservation.
     # Trap unregistered:
     # - EXIT - Failure to untrap is reported, but ignored otherwise.
@@ -1191,6 +1227,7 @@ function untrap_and_unreserve_testbed () {
         }
         case "${TEST_CODE}" in
             *"1n-aws"* | *"2n-aws"* | *"3n-aws"*)
+                TERRAFORM_MODULE_DIR="terraform-aws-${NODENESS}-${FLAVOR}-c5n"
                 terraform_destroy || die "Failed to call terraform destroy."
                 ;;
             *)