blob: 4bbfe92e5787e307438dc79ca4f0c2e1ac948fcb [file] [log] [blame]
#!/usr/bin/env bash
# TestON install script for Ubuntu (Debian and Fedora)
# Fail on error
set -e
# Fail on unset var usage
set -o nounset
# Identify Linux release
DIST=Unknown
RELEASE=Unknown
CODENAME=Unknown
ARCH=`uname -m`
if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi
if [ "$ARCH" = "i686" ]; then ARCH="i386"; fi
if [ -e /etc/debian_version ]; then DIST="Debian"; fi
if [ -e /etc/fedora-release ]; then DIST="Debian"; fi
grep Ubuntu /etc/lsb-release &> /dev/null && DIST="Ubuntu"
if [ "$DIST" = "Ubuntu" ] || [ "$DIST" = "Debian" ]; then
install='sudo apt-get -y install'
remove='sudo apt-get -y remove'
pipinstall='sudo pip install'
# Prereqs for this script
if ! which lsb_release &> /dev/null; then
$install lsb-release
fi
fi
if [ "$DIST" = "Fedora" ]; then
install='sudo yum -y install'
remove='sudo yum -y erase'
pipinstall='sudo pip install'
# Prereqs for this script
if ! which lsb_release &> /dev/null; then
$install redhat-lsb-core
fi
fi
if which lsb_release &> /dev/null; then
DIST=`lsb_release -is`
RELEASE=`lsb_release -rs`
CODENAME=`lsb_release -cs`
fi
echo "Detected Linux distribution: $DIST $RELEASE $CODENAME $ARCH"
if ! echo $DIST | egrep 'Ubuntu|Debian|Fedora'; then
echo "Install.sh currently only supports Ubuntu, Debian and Fedora."
exit 1
fi
# Check OnosSystemTest is cloned in home directory.
if [ ! -d ~/OnosSystemTest ]; then
echo "Could not find OnosSystemTest in your home directory."
echo "Exiting from running install script."
exit 1
fi
# Install TestON dependencies
echo "Installing TestON dependencies"
if [ "$DIST" = "Fedora" ]; then
# Fedora may have vlan enabled by default. Still need to confirm and update later
$install python-pip build-essential python-dev pep8 python3-requests
$pipinstall pexpect==3.2 configobj==4.7.2 numpy
else
$install python-pip build-essential python-dev pep8 vlan python3-requests
$pipinstall pexpect==3.2 configobj==4.7.2 numpy
fi
# Some Distos have this already from another package
if which arping > /dev/null ; then
echo "Arping command detected, skipping package installation."
else
$install arping
fi
# Add check here to make sure OnosSystemTest is cloned into home directory (place holder)
# Add symbolic link to main TestON folder in Home dir
pushd ~
sudo ln -s ~/OnosSystemTest/TestON TestON
echo "Added symbolic link to TestON folder in HOME directory."
popd
# OnosSystemTest git pre-commit hooks
pushd ~/OnosSystemTest
cp .git/hooks/pre-commit.sample .git/hooks/pre-commit
popd
# Add symbolic link to TestON cli in /usr/local/bin
pushd /usr/local/bin
sudo ln -s $HOME/OnosSystemTest/TestON/bin/cli.py teston
echo "Added symbolic link to TestON CLI in /usr/local/bin."
popd
# Add log rotation configuration for TestON logs here (place holder)
echo "Completed running install.sh script"
echo "Run TestON CLI by typing teston at bash prompt"
echo "Example: teston run <TestSuite Name>"