Bash functions style cleanup
[csit.git] / resources / libraries / bash / function / gather.sh
index 28a84ca..1fc2d3e 100644 (file)
@@ -1,4 +1,5 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2019 PANTHEON.tech and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -23,8 +24,6 @@ set -exuo pipefail
 
 function gather_build () {
 
-    set -exuo pipefail
-
     # Variables read:
     # - TEST_CODE - String affecting test selection, usually jenkins job name.
     # - DOWNLOAD_DIR - Path to directory pybot takes the build to test from.
@@ -34,6 +33,7 @@ function gather_build () {
     # - ${DOWNLOAD_DIR} - Files needed by tests are gathered here.
     # Functions called:
     # - die - Print to stderr and exit, defined in common.sh
+    # - gather_os - Parse os parameter for OS/distro name.
     # - gather_dpdk, gather_vpp, gather_ligato - See their definitions.
     # Multiple other side effects are possible,
     # see functions called from here for their current description.
@@ -41,6 +41,8 @@ function gather_build () {
     # TODO: Separate DUT-from-TEST_CODE from gather-for-DUT,
     #   when the first one becomes relevant for per_patch.
 
+    set -exuo pipefail
+
     pushd "${DOWNLOAD_DIR}" || die "Pushd failed."
     case "${TEST_CODE}" in
         *"hc2vpp"*)
@@ -69,8 +71,6 @@ function gather_build () {
 
 function gather_dpdk () {
 
-    set -exuo pipefail
-
     # Ensure latest DPDK archive is downloaded.
     #
     # Variables read:
@@ -82,6 +82,8 @@ function gather_dpdk () {
     # Functions called:
     # - die - Print to stderr and exit, defined in common.sh
 
+    set -exuo pipefail
+
     dpdk_repo="https://fast.dpdk.org/rel"
     # Use downloaded packages with specific version
     if [[ "${TEST_CODE}" == *"daily"* ]] || \
@@ -97,9 +99,12 @@ function gather_dpdk () {
             die "Composite piped command failed."
         }
     else
-        echo "Downloading DPDK packages of specific version from repo..."
-        # TODO: Can we autodetect this based on what CSIT-stable VPP uses?
-        dpdk_stable_ver="dpdk-19.02.tar.xz"
+        echo "Downloading DPDK package of specific version from repo ..."
+        # Downloading DPDK version based on what VPP is using. Currently
+        # it is not easy way to detect from VPP version automatically.
+        dpdk_stable_ver="$(< "${CSIT_DIR}/DPDK_VPP_VER")".tar.xz || {
+            die "Failed to read DPDK VPP version!"
+        }
     fi
     # TODO: Use "wget -N" instead checking for file presence?
     if [[ ! -f "${dpdk_stable_ver}" ]]; then
@@ -112,8 +117,6 @@ function gather_dpdk () {
 
 function gather_ligato () {
 
-    set -exuo pipefail
-
     # Build docker image (with vpp, ligato and vpp-agent),
     # and put it to ${DOWNLOAD_DIR}/.
     #
@@ -150,6 +153,8 @@ function gather_ligato () {
     #   so maybe it is not worth introducing fragments/functions for the blocks.
     # TODO: This fragment is too long anyway, split it up.
 
+    set -exuo pipefail
+
     gather_vpp || die "The function should have died on error."
 
     mkdir -p /tmp/vpp && rm -f /tmp/vpp/* || {
@@ -239,21 +244,21 @@ function gather_ligato () {
 
 function gather_vpp () {
 
-    set -exuo pipefail
-
     # Variables read:
     # - BASH_FUNCTION_DIR - Bash directory with functions.
     # - TEST_CODE - The test selection string from environment or argument.
     # - DOWNLOAD_DIR - Path to directory pybot takes the build to test from.
     # - CSIT_DIR - Path to existing root of local CSIT git repository.
+    # Variables set:
+    # - VPP_VERSION - VPP stable version under test.
     # Files read:
     # - ${CSIT_DIR}/DPDK_STABLE_VER - DPDK version to use
     #   by csit-vpp not-timed jobs.
-    # - ${CSIT_DIR}/VPP_STABLE_VER_UBUNTU - VPP version to use by those.
-    # - ../vpp*.deb - Relative to ${DOWNLOAD_DIR}, copied for vpp-csit jobs.
+    # - ${CSIT_DIR}/VPP_STABLE_VER_UBUNTU - Ubuntu VPP version to usee.
+    # - ../vpp*.deb|rpm - Relative to ${DOWNLOAD_DIR}, copied for vpp-csit jobs.
     # Directories updated:
     # - ${DOWNLOAD_DIR}, vpp-*.deb files are copied here for vpp-csit jobs.
-    # - ./ - Assumed ${DOWNLOAD_DIR}, vpp-*.deb files
+    # - ./ - Assumed ${DOWNLOAD_DIR}, vpp-*.deb|rpm files
     #   are downloaded here for csit-vpp.
     # Functions called:
     # - die - Print to stderr and exit, defined in common_functions.sh
@@ -261,6 +266,8 @@ function gather_vpp () {
     # - ${CSIT_DIR}/resources/tools/scripts/download_install_vpp_pkgs.sh
     #   - Should download and extract requested files to ./.
 
+    set -exuo pipefail
+
     case "${TEST_CODE}" in
         # Not csit-vpp as this code is re-used by ligato gathering.
         "csit-"*)
@@ -273,23 +280,16 @@ function gather_vpp () {
                 warn "Downloading latest VPP packages from Packagecloud."
             else
                 warn "Downloading stable VPP packages from Packagecloud."
-                if [[ "${TEST_CODE}" == *"device"* ]];
-                then
-                    VPP_VERSION="$(<"${CSIT_DIR}/VPP_STABLE_VER_UBUNTU_BIONIC")" || {
-                        die "Read VPP stable version failed."
-                    }
-                else
-                    VPP_VERSION="$(<"${CSIT_DIR}/VPP_STABLE_VER_UBUNTU")" || {
-                        die "Read VPP stable version failed."
-                    }
-                fi
+                VPP_VERSION="$(<"${CSIT_DIR}/${VPP_VER_FILE}")" || {
+                    die "Read VPP stable version failed."
+                }
             fi
             source "${BASH_FUNCTION_DIR}/artifacts.sh" || die "Source failed."
             download_artifacts || die
             ;;
         "vpp-csit-"*)
             # Use locally built packages.
-            mv "${DOWNLOAD_DIR}"/../"vpp"*".deb" "${DOWNLOAD_DIR}"/ || {
+            mv "${DOWNLOAD_DIR}"/../"vpp"*".${PKG_SUFFIX}" "${DOWNLOAD_DIR}"/ || {
                 die "Move command failed."
             }
             ;;