#!/bin/bash if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then set -x fi # Make sure the disk image build fails if nfvbench installation fails set -euo pipefail if [ $DIB_DEV_IMAGE != "generator" ]; then exit 0 fi # TRex installation mkdir -p /opt/trex mkdir /var/log/nfvbench wget --no-cache --no-check-certificate https://trex-tgn.cisco.com/trex/release/$TREX_VER.tar.gz tar xzf $TREX_VER.tar.gz -C /opt/trex rm -f /$TREX_VER.tar.gz rm -f /opt/trex/$TREX_VER/trex_client_$TREX_VER.tar.gz cp -a /opt/trex/$TREX_VER/automation/trex_control_plane/interactive/trex /usr/local/lib/python3.6/site-packages/ rm -rf /opt/trex/$TREX_VER/automation/trex_control_plane/interactive/trex # NFVbench installation cd /opt if [[ "${DIB_NFVBENCH_CODE_ORIGIN}" == "static" ]]; then # nfvbench code has been copied by the install-static element to # /opt/nfvbench without the .git/ directory. But pip will need that .git/ # directory to compute nfvbench version, so will now finish the incomplete # job of install-static: STATIC_NFVBENCH_CODE="$(dirname $0)/../static/opt/nfvbench" [ -d "${STATIC_NFVBENCH_CODE}" ] || { echo "Error: directory ${STATIC_NFVBENCH_CODE} missing." echo " You requested a build from local nfvbench code with" echo " DIB_NFVBENCH_CODE_ORIGIN=static, but you likely forgot" echo " to clone nfvbench code in elements/nfvbenchvm/static/opt/nfvbench" exit 1 } rsync -lr "${STATIC_NFVBENCH_CODE}"/ /opt/nfvbench/ else git clone https://gerrit.opnfv.org/gerrit/nfvbench fi cd nfvbench/ python3 -m pip install . --use-deprecated=legacy-resolver cp xtesting/testcases.yaml /usr/local/lib/python3.6/site-packages/xtesting/ci/testcases.yaml python3 ./docker/cleanup_generators.py rm -rf /opt/nfvbench/.git rm -rf /opt/nfvbench/nfvbench rm -rf /opt/nfvbench/behave_tests # symlink to NFVbench sources ln -s /usr/local/lib/python3.6/site-packages/nfvbench /opt/nfvbench/nfvbench ln -s /usr/local/lib/python3.6/site-packages/behave_tests /opt/nfvbench/behave_tests # persist env variables echo "export TREX_VER=\"$TREX_VER\"" >> /etc/profile.d/nfvbench.sh echo "export TREX_EXT_LIBS=\"/opt/trex/$TREX_VER/external_libs\"" >> /etc/profile.d/nfvbench.sh