aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/scripts/download_install_vpp_pkgs.sh
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2018-05-09 08:50:10 +0200
committerPeter Mikus <pmikus@cisco.com>2018-05-31 12:34:06 +0000
commit0b8f3b67cd8d35ac0833abf0040ce104af6f7aed (patch)
treed47a97fc656786c68090c6474221e518666cf55d /resources/tools/scripts/download_install_vpp_pkgs.sh
parent0451701f713e6358326fde689517d5212789ebc5 (diff)
CSIT-1055: Pkg download script to use package system not curl
- Rework VPP package download script Change-Id: I51aca96fc3b834d8e17cf349a5a7b9d7105f2184 Signed-off-by: Peter Mikus <pmikus@cisco.com>
Diffstat (limited to 'resources/tools/scripts/download_install_vpp_pkgs.sh')
-rwxr-xr-xresources/tools/scripts/download_install_vpp_pkgs.sh210
1 files changed, 154 insertions, 56 deletions
diff --git a/resources/tools/scripts/download_install_vpp_pkgs.sh b/resources/tools/scripts/download_install_vpp_pkgs.sh
index eea3cc058c..ce7530af83 100755
--- a/resources/tools/scripts/download_install_vpp_pkgs.sh
+++ b/resources/tools/scripts/download_install_vpp_pkgs.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2018 Cisco 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:
@@ -13,69 +13,167 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-set -ex
+set -e -o pipefail
-URL="https://nexus.fd.io/service/local/artifact/maven/content"
-VER="RELEASE"
-GROUP="io.fd.vpp"
+OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
+OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
-if [ -f "/etc/redhat-release" ]; then
- trap 'rm -f *.rpm.md5; exit' EXIT
- trap 'rm -f *.rpm.md5;rm -f *.rpm; exit' ERR
+NEXUSPROXY="https://nexus.fd.io"
- VPP_REPO_URL_PATH="./VPP_REPO_URL_CENTOS"
- if [ -e "$VPP_REPO_URL_PATH" ]; then
- VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
- REPO=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
- REPO=$(echo ${REPO%/io/fd/vpp/})
- else
- REPO='fd.io.master.centos7'
- FILES=*.rpm
- MD5FILES=*.rpm.md5
- fi
+function artifacts {
+ if [ "$OS_ID" == "ubuntu" ]; then
+ VPP_REPO_URL_PATH="./VPP_REPO_URL_UBUNTU"
+ if [ -e "$VPP_REPO_URL_PATH" ]; then
+ VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
+ REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
+ REPO_NAME=$(echo ${REPO_NAME%io/fd/vpp/})
+ else
+ OS_VERSION_CODENAME=$(grep '^VERSION_CODENAME=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
+ REPO_NAME="fd.io.master.ubuntu.${OS_VERSION_CODENAME}.main"
+ fi
+ REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
+
+ echo "deb ${REPO_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list
+ sudo apt-get -y update \
+ -o Dir::Etc::sourcelist="sources.list.d/99fd.io.list" \
+ -o Acquire::AllowInsecureRepositories=true \
+ -o Dir::Etc::sourceparts="-" \
+ -o APT::Get::AllowUnauthenticated=true \
+ -o APT::Get::List-Cleanup="0"
+
+ # If version is set we will add suffix
+ VPP=(vpp vpp-dbg vpp-dev vpp-lib vpp-plugins)
+ DKMS=(vpp-dpdk-dkms)
+ if [ -z "${VPP_VERSION}" ]; then
+ ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
+ ARTIFACTS+=(${DKMS[@]/%/${DKMS_VERSION}})
+ else
+ ARTIFACTS+=(${VPP[@]/%/=${VPP_VERSION}})
+ ARTIFACTS+=(${DKMS[@]/%/=${DKMS_VERSION}})
+ fi
+
+ if [ "$INSTALL" = true ]; then
+ echo Installing VPP
+ sudo apt-get -y install ${ARTIFACTS[@]} \
+ -o Acquire::AllowInsecureRepositories=true \
+ -o APT::Get::AllowUnauthenticated=true
+ else
+ echo Downloading VPP
+ apt-get -y download ${ARTIFACTS[@]} \
+ -o Acquire::AllowInsecureRepositories=true \
+ -o APT::Get::AllowUnauthenticated=true
+ fi
+
+ elif [ "$OS_ID" == "centos" ]; then
+ VPP_REPO_URL_PATH="./VPP_REPO_URL_CENTOS"
+ if [ -e "$VPP_REPO_URL_PATH" ]; then
+ VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
+ REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
+ REPO_NAME=$(echo ${REPO_NAME%/io/fd/vpp/})
+ else
+ REPO_NAME="fd.io.master.centos7"
+ fi
+ REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
+
+ sudo cat << EOF > fdio-master.repo
+[fdio-master]
+name=fd.io master branch latest merge
+baseurl=${REPO_URL}
+enabled=1
+gpgcheck=0
+EOF
+ sudo mv fdio-master.repo /etc/yum.repos.d/fdio-master.repo
- ARTIFACTS="vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins"
- PACKAGE="rpm rpm.md5"
- CLASS=""
- VPP_INSTALL_COMMAND="rpm -ivh *.rpm"
-else
- trap 'rm -f *.deb.md5; exit' EXIT
- trap 'rm -f *.deb.md5;rm -f *.deb; exit' ERR
-
- VPP_REPO_URL_PATH="./VPP_REPO_URL_UBUNTU"
- if [ -e "$VPP_REPO_URL_PATH" ]; then
- VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
- REPO=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
- REPO=$(echo ${REPO%/io/fd/vpp/})
+ # If version is set we will add suffix
+ VPP=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins)
+ if [ -z "${VPP_VERSION}" ]; then
+ ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
+ else
+ ARTIFACTS+=(${VPP[@]/%/-${VPP_VERSION}})
+ fi
+
+ if [ "$INSTALL" = true ]; then
+ echo Installing VPP
+ sudo yum -y install ${ARTIFACTS[@]}
+ else
+ echo Downloading VPP
+ sudo yum -y install --downloadonly --downloaddir=. ${ARTIFACTS[@]}
+ fi
+ elif [ "$OS_ID" == "opensuse" ]; then
+ VPP_REPO_URL_PATH="./VPP_REPO_URL_OPENSUSE"
+ if [ -e "$VPP_REPO_URL_PATH" ]; then
+ VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
+ REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
+ REPO_NAME=$(echo ${REPO_NAME%/io/fd/vpp/})
+ else
+ REPO_NAME='fd.io.master.opensuse'
+ fi
+ REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
+
+ sudo cat << EOF > fdio-master.repo
+[fdio-master]
+name=fd.io master branch latest merge
+baseurl=${REPO_URL}
+enabled=1
+gpgcheck=0
+EOF
+ sudo mv fdio-master.repo /etc/yum/repos.d/fdio-master.repo
+
+ # If version is set we will add suffix
+ VPP=(vpp vpp-devel vpp-lib vpp-plugins libvpp0)
+ if [ -z "${VPP_VERSION}" ]; then
+ ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
+ else
+ ARTIFACTS+=(${VPP[@]/%/-${VPP_VERSION}})
+ fi
+
+ if [ "$INSTALL" = true ]; then
+ echo Installing VPP
+ sudo yum -y install ${ARTIFACTS[@]}
+ else
+ echo Downloading VPP
+ sudo yum -y install --downloadonly --downloaddir=. ${ARTIFACTS[@]}
+ fi
else
- REPO='fd.io.master.ubuntu.xenial.main'
- FILES=*.deb
- MD5FILES=*.deb.md5
+ echo "$OS_ID is not yet supported."
+ exit 1
fi
+}
- ARTIFACTS="vpp vpp-dbg vpp-dev vpp-dpdk-dkms vpp-lib vpp-plugins"
- PACKAGE="deb deb.md5"
- CLASS="deb"
- VPP_INSTALL_COMMAND="dpkg -i *.deb"
-fi
+function display_help () {
+ echo "Usage: $0 [--skip-install] [--vpp <version>] [--dkms <version>]"
+}
-for ART in ${ARTIFACTS}; do
- for PAC in $PACKAGE; do
- curl "${URL}?r=${REPO}&g=${GROUP}&a=${ART}&p=${PAC}&v=${VER}&c=${CLASS}" -O -J || exit
- done
-done
-
-for FILE in ${FILES}; do
- echo " "${FILE} >> ${FILE}.md5
-done
+# Whether to install artifacts or not
+INSTALL=true
+# VPP version (default empty = latest)
+VPP_VERSION=""
+# DKMS version (default empty = latest)
+DKMS_VERSION=""
-for MD5FILE in ${MD5FILES}; do
- md5sum -c ${MD5FILE} || exit
+while :
+do
+ case "$1" in
+ -h | --help)
+ display_help
+ exit 0
+ ;;
+ -s | --skip-install)
+ INSTALL=false
+ shift 1
+ ;;
+ -v | --vpp)
+ VPP_VERSION="$2"
+ shift 2
+ ;;
+ -d | --dkms)
+ DKMS_VERSION="$2"
+ shift 2
+ ;;
+ *)
+ break
+ ;;
+ esac
done
-if [ "$1" != "--skip-install" ]; then
- echo Installing VPP
- sudo ${VPP_INSTALL_COMMAND}
-else
- echo VPP Installation skipped
-fi
+artifacts "${INSTALL}" "${VPP_VERSION}" "${DKMS_VERSION}"