summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Morales <v.morales@samsung.com>2020-10-01 17:24:32 -0400
committerMichael Pedersen <michaelx.pedersen@intel.com>2021-03-03 08:55:39 +0000
commit3c0a7dbb638b633855658baed38e3b871a5bcac0 (patch)
tree0e29fe03c1974b36d701bd6df5985d57e6a95a08
parent402f6f6d6ecde005eb89166957d209bcf6b5ac40 (diff)
Switch to Python Virtual Environment
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>
-rw-r--r--bindep.txt1
-rwxr-xr-xdeploy.sh9
-rwxr-xr-xfunctions.sh33
-rw-r--r--tox.ini1
4 files changed, 39 insertions, 5 deletions
diff --git a/bindep.txt b/bindep.txt
index f989692..fc14d44 100644
--- a/bindep.txt
+++ b/bindep.txt
@@ -1,5 +1,6 @@
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]
diff --git a/deploy.sh b/deploy.sh
index 7b230f1..d817022 100755
--- a/deploy.sh
+++ b/deploy.sh
@@ -8,9 +8,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-set -o xtrace
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.
@@ -31,6 +33,11 @@ check_prerequisites
source "$CURRENTPATH/deploy.env"
# ---------------------------------------------------------------------
+# creates a virtual environment for installation of dependencies
+# ---------------------------------------------------------------------
+creates_virtualenv
+
+# ---------------------------------------------------------------------
# bootstrap install prerequisites
# ---------------------------------------------------------------------
run_playbook bootstrap
diff --git a/functions.sh b/functions.sh
index 03e2284..305dcb7 100755
--- a/functions.sh
+++ b/functions.sh
@@ -26,6 +26,9 @@ assert_non_empty() {
error "$2"
fi
}
+if [ "${DEBUG:-false}" == "true" ]; then
+ set -o xtrace
+fi
check_prerequisites() {
info "Check prerequisites"
@@ -65,7 +68,21 @@ check_prerequisites() {
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
@@ -253,11 +270,19 @@ EOF
fi
}
+# 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() {
- 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
diff --git a/tox.ini b/tox.ini
index 0d309d7..a4d4dc7 100644
--- a/tox.ini
+++ b/tox.ini
@@ -12,6 +12,7 @@ deps =
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}"