Virtual Environments allow the python modules installation without
affecting the hosting node. This helps to control dependencies required
by this project.
Signed-off-by: Victor Morales <v.morales@samsung.com>
Change-Id: Ib53d9dd335a4707ff863a6fd732d23d323513430
Reviewed-on: https://gerrit.opnfv.org/gerrit/c/kuberef/+/71195
Tested-by: jenkins-ci <jenkins-opnfv-ci@opnfv.org>
Reviewed-by: Michael Pedersen <michaelx.pedersen@intel.com>
Reviewed-by: Rihab Banday <rihab.banday@ericsson.com>
python3-all-dev [platform:dpkg]
python3-all [platform:dpkg]
python-all-dev [platform:dpkg]
python3-all-dev [platform:dpkg]
python3-all [platform:dpkg]
python-all-dev [platform:dpkg]
+pkg-config [platform:dpkg]
python-devel [platform:rpm !platform:centos-8]
python3-devel [platform:rpm]
python-devel [platform:rpm !platform:centos-8]
python3-devel [platform:rpm]
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
set -o errexit
set -o nounset
set -o errexit
set -o nounset
+if [ "${DEBUG:-false}" == "true" ]; then
+ set -o xtrace
+fi
# Script for end to end RI-2 deployment using Infra engine and BMRA.
# Please refer to README for detailed information.
# Script for end to end RI-2 deployment using Infra engine and BMRA.
# Please refer to README for detailed information.
# shellcheck source=./deploy.env
source "$CURRENTPATH/deploy.env"
# shellcheck source=./deploy.env
source "$CURRENTPATH/deploy.env"
+# ---------------------------------------------------------------------
+# creates a virtual environment for installation of dependencies
+# ---------------------------------------------------------------------
+creates_virtualenv
+
# ---------------------------------------------------------------------
# bootstrap install prerequisites
# ---------------------------------------------------------------------
# ---------------------------------------------------------------------
# bootstrap install prerequisites
# ---------------------------------------------------------------------
+if [ "${DEBUG:-false}" == "true" ]; then
+ set -o xtrace
+fi
check_prerequisites() {
info "Check prerequisites"
check_prerequisites() {
info "Check prerequisites"
sudo sed -i "s/^Defaults.*env_reset/#&/" /etc/sudoers
#-------------------------------------------------------------------------------
sudo sed -i "s/^Defaults.*env_reset/#&/" /etc/sudoers
#-------------------------------------------------------------------------------
- # Check if some tools are installed
+ # Check if Python Virtual Environment is installed
+ #-------------------------------------------------------------------------------
+ if ! command -v virtualenv &> /dev/null; then
+ error "VirtualEnv not found. Please install."
+ fi
+
+ #-------------------------------------------------------------------------------
+ # Check if PIP Installs Packages is installed
+ #-------------------------------------------------------------------------------
+ if ! command -v pip &> /dev/null; then
+ error "PIP not found. Please install."
+ fi
+
+ #-------------------------------------------------------------------------------
+ # Check is libvirt is installed
#-------------------------------------------------------------------------------
for tool in ansible yq virsh jq; do
if ! command -v "$tool" &> /dev/null; then
#-------------------------------------------------------------------------------
for tool in ansible yq virsh jq; do
if ! command -v "$tool" &> /dev/null; then
+# Creates a python virtual environment
+creates_virtualenv() {
+ if [ ! -d "$CURRENTPATH/.venv" ]; then
+ virtualenv .venv
+ fi
+ # shellcheck disable=SC1090
+ source "$CURRENTPATH/.venv/bin/activate"
+ pip install -r "$CURRENTPATH/requirements.txt"
+}
+
# Executes a specific Ansible playbook
run_playbook() {
# Executes a specific Ansible playbook
run_playbook() {
- ansible_cmd="$(command -v ansible-playbook)"
- ansible_cmd+=" -i $CURRENTPATH/inventory/localhost.ini"
- ansible_cmd+=" -e ansible_python_interpreter=$(command -v python)"
+ ansible_cmd="$(command -v ansible-playbook) -i $CURRENTPATH/inventory/localhost.ini -e ansible_python_interpreter=$(command -v python)"
if [ "${DEBUG:-false}" == "true" ]; then
ansible_cmd+=" -vvv"
fi
if [ "${DEBUG:-false}" == "true" ]; then
ansible_cmd+=" -vvv"
fi
whitelist_externals = bash
commands = bash -c "find {toxinidir} \
-not -path {toxinidir}/.tox/\* \
whitelist_externals = bash
commands = bash -c "find {toxinidir} \
-not -path {toxinidir}/.tox/\* \
+ -not -path {toxinidir}/.venv/\* \
# E006 check for lines longer than 79 columns
-name \*.sh | xargs bashate -v -iE006"
bash -c "yamllint {toxinidir}"
# E006 check for lines longer than 79 columns
-name \*.sh | xargs bashate -v -iE006"
bash -c "yamllint {toxinidir}"