Updating multus, SRIOV and nfd test cases
[multicloud/k8s.git] / kud / tests / _common_test.sh
1 #!/bin/bash
2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
4 # Copyright 2019 © Samsung Electronics Co., Ltd.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10
11 set -o errexit
12 set -o nounset
13 set -o pipefail
14
15 # install_deps() - Install dependencies required for functional tests
16 function install_deps {
17     if ! $(jq --version &>/dev/null); then
18         function ubuntu_deps {
19             sudo apt-get install -y jq
20         }
21         install_packages "" ubuntu_deps ""
22     fi
23 }
24
25 # install_ipcalc() - Install ipcalc for tests
26 function install_ipcalc {
27     if ! $(ipcalc --version &>/dev/null); then
28         function ipcalc_ubuntu_deps {
29             sudo apt-get install -y ipcalc
30         }
31         install_packages "" ipcalc_ubuntu_deps ""
32     fi
33 }
34
35 # install_ovn_deps() - Install dependencies required for tests that require OVN
36 function install_ovn_deps {
37     if ! $(yq --version &>/dev/null); then
38         install_deps # jq needed as it's dependency of yq
39         sudo -E pip install yq
40     fi
41     if ! $(ovn-nbctl --version &>/dev/null); then
42         function ovn_ubuntu_deps {
43             sudo apt-get install -y apt-transport-https
44             echo "deb https://packages.wand.net.nz $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/wand.list
45             sudo curl https://packages.wand.net.nz/keyring.gpg -o /etc/apt/trusted.gpg.d/wand.gpg
46             sudo apt-get update
47             sudo apt install -y ovn-common
48         }
49         install_packages "" ovn_ubuntu_deps ""
50     fi
51 }
52
53 function install_packages {
54     local suse_packages=$1
55     local ubuntu_debian_packages=$2
56     local rhel_centos_packages=$3
57     source /etc/os-release || source /usr/lib/os-release
58     case ${ID,,} in
59         *suse)
60             ($suse_packages)
61         ;;
62         ubuntu|debian)
63             ($ubuntu_debian_packages)
64         ;;
65         rhel|centos|fedora)
66             ($rhel_centos_packages)
67         ;;
68     esac
69 }