# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
##############################################################################
+# vim: sw=4 ts=4 sts=4 et ft=sh :
-ROBOT_VENV="/tmp/v/robot"
-echo ROBOT_VENV="${ROBOT_VENV}" >> "${WORKSPACE}/env.properties"
-
-# The --system-site-packages parameter allows us to pick up system level
-# installed packages. This allows us to bake matplotlib which takes very long
-# to install into the image.
-virtualenv --system-site-packages "${ROBOT_VENV}"
# shellcheck disable=SC1090
-source "${ROBOT_VENV}/bin/activate"
+. ~/lf-env.sh
-set -exu
+# Create a virtual environment for robot tests and make sure setuptools & wheel
+# are up-to-date in addition to pip
+lf-activate-venv --python python3 --venv-file "${WORKSPACE}/.robot_venv" \
+ setuptools \
+ wheel
-# Make sure pip itself us up-to-date.
-pip install --upgrade pip
-python3 -m pip install --user --upgrade pip
+# Save the virtual environment in ROBOT_VENV
+ROBOT_VENV="$(cat "${WORKSPACE}/.robot_venv")"
+echo ROBOT_VENV="${ROBOT_VENV}" >> "${WORKSPACE}/env.properties"
-pip install --upgrade docker-py importlib requests scapy netifaces netaddr ipaddr pyhocon
-pip install --upgrade robotframework-httplibrary \
- requests==2.15.1 \
- robotframework-requests \
- robotframework-sshlibrary==3.1.1 \
- robotframework-selenium2library \
- robotframework-pycurllibrary
+set -exu
+
+echo "Installing Python Requirements"
+cat << 'EOF' > "requirements.txt"
+docker-py
+ipaddr
+netaddr
+netifaces
+pyhocon
+requests
+robotframework
+robotframework-httplibrary
+robotframework-requests==0.9.3
+robotframework-selenium2library
+robotframework-sshlibrary==3.8.0
+scapy
# Module jsonpath is needed by current AAA idmlite suite.
-pip install --upgrade jsonpath-rw
+jsonpath-rw
# Modules for longevity framework robot library
-pip install --upgrade elasticsearch==1.7.0 elasticsearch-dsl==0.0.11
+elasticsearch
+elasticsearch-dsl
# Module for pyangbind used by lispflowmapping project
-pip install --upgrade pyangbind
+pyangbind
# Module for iso8601 datetime format
-pip install --upgrade isodate
+isodate
# Module for TemplatedRequests.robot library
-pip install --upgrade jmespath
+jmespath
# Module for backup-restore support library
-pip install --upgrade jsonpatch
-
-#Module for elasticsearch python client
-#Module for elasticsearch python client
-python3 -m pip install --user urllib3==1.22
-python3 -m pip install --user requests==2.9.1
-python3 -m pip install --user elasticsearch==6.2.0
-python3 -m pip install --user PyYAML==3.11
-
-# odltools for extra debugging
-pip install odltools
-odltools -V
+jsonpatch
+EOF
-# Print installed versions.
+python -m pip install -r requirements.txt
pip freeze
-
-# vim: sw=4 ts=4 sts=4 et ft=sh :