# hpc-testing
# Copyright (C) 2018 SUSE LLC
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

#########################
#
# Common test functions for phase 0
#
#########################

setup_requirements()
{
	local host=$1
	echo "Setting up needed packages on $host"

	tp $host "zypper install --no-confirm $(get_package_list $host)"

}

firewall_down()
{
	# Take down the firewall as some tests requires more than SSH port to be open (openMPI, NFSoRDMA, etc.)
	local host=$1
	tp $host 'systemctl stop SuSEfirewall2 || true'
	tp $host 'systemctl stop firewalld || true'
}

set_properties()
{
	local host=$1
	PACKAGE_LIST=$(get_package_list $host)
	VERSIONS=$(tpq $host "rpm -q --qf '%{NAME} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\\n' $PACKAGE_LIST")

	echo "$VERSIONS" | while read line; do 
		  package=$(echo $line | awk '{print $1}')
		  version=$(echo $line | awk '{print $2}')
		juLogSetProperty $host.$package $version
	done
	kernel_version=$(tpq $host "uname -a")
	juLogSetProperty $host.kernel "$kernel_version"
}

get_common_package_list()
{
	local host=$1
	PACKAGE_LIST="infiniband-diags rdma-ndd libibverbs-utils srp_daemon fabtests "
	PACKAGE_LIST+=" mpitests-mvapich2"
	PACKAGE_LIST+=" ibutils dapl-utils psmisc nfs-kernel-server"
	PACKAGE_LIST+=" nvme-cli nvmetcli bc iputils"

	case $(get_suse_version $host) in
		15|15.1)
			PACKAGE_LIST+=" python3-targetcli-fb "
			PACKAGE_LIST+=" mpitests-openmpi2 mpitests-mpich"
			;;
		15.2|15.3)
			PACKAGE_LIST+=" python3-targetcli-fb "
			PACKAGE_LIST+=" mpitests-openmpi2 mpitests-mpich"
			PACKAGE_LIST+=" mpitests-openmpi3"
			;;
		42.3|12.3|12.4|12.5)
			PACKAGE_LIST+=" mpitests-openmpi targetcli-fb "
			;;
	esac
	echo $PACKAGE_LIST " "
}
