nfvbenchvm: keep only 1 copy of behave_tests code
[nfvbench.git] / nfvbenchvm / dib / elements / nfvbenchvm / post-install.d / 52-nfvbench-script
index 9162952..4edc493 100755 (executable)
@@ -1,5 +1,12 @@
 #!/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
@@ -17,15 +24,33 @@ rm -rf /opt/trex/$TREX_VER/automation/trex_control_plane/interactive/trex
 
 # NFVbench installation
 cd /opt
-git clone https://gerrit.opnfv.org/gerrit/nfvbench
+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/
-pip3 install . --use-deprecated=legacy-resolver
+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