aboutsummaryrefslogtreecommitdiffstats
path: root/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/52-nfvbench-script
blob: 4edc49382bc1063fb12aa10cd2b31f04f4d04d4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/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