summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkos Chandras <mchandras@suse.de>2018-03-19 14:15:00 +0000
committerMarkos Chandras <mchandras@suse.de>2018-03-21 17:28:55 +0000
commit613d9d5631fa4f7fbc6b565e35620fdb5dd3561e (patch)
tree213bdb042a15fccdbae62eedb3075e701d4830cb
parent0e1dda4501a6f71112a70bbb6eda034acfaaa147 (diff)
xci: Install the ARA callback plugin
The ARA Ansible plugin can be used to visualize the entire XCI run so lets install it by default and generate a report at the end of the execution. Change-Id: I66c3230b371001c110e81755c5f0dad4b1756606 Link: https://github.com/openstack/ara Signed-off-by: Markos Chandras <mchandras@suse.de>
-rw-r--r--xci/files/install-lib.sh19
-rwxr-xr-xxci/xci-deploy.sh14
2 files changed, 30 insertions, 3 deletions
diff --git a/xci/files/install-lib.sh b/xci/files/install-lib.sh
index 0ea6f181..ce52ff4b 100644
--- a/xci/files/install-lib.sh
+++ b/xci/files/install-lib.sh
@@ -14,6 +14,10 @@
function install_ansible() {
set -eu
+ # Use the upper-constraints file from the pinned requirements repository.
+ local requirements_sha=$(awk '/requirements_git_install_branch:/ {print $2}' ${XCI_PATH}/xci/installer/osa/files/openstack_services.yml)
+ local uc="https://raw.githubusercontent.com/openstack/requirements/${requirements_sha}/upper-constraints.txt"
+
declare -A PKG_MAP
# workaround: for latest bindep to work, it needs to use en_US local
@@ -163,7 +167,20 @@ function install_ansible() {
PIP=$(which pip)
echo "Using pip: $(${PIP} --version)"
- ${PIP} -q install --user --upgrade virtualenv pip setuptools ansible==$XCI_ANSIBLE_PIP_VERSION
+ ${PIP} -q install --user --upgrade -c $uc ara virtualenv pip setuptools ansible==$XCI_ANSIBLE_PIP_VERSION
+
+ ara_location=$(${PYTHON} -c "import os,ara; print(os.path.dirname(ara.__file__))")
+ export ANSIBLE_CALLBACK_PLUGINS="/etc/ansible/roles/plugins/callback:${ara_location}/plugins/callbacks"
+}
+
+collect_xci_logs() {
+ echo "----------------------------------"
+ echo "Info: Collecting XCI logs"
+ echo "----------------------------------"
+
+ # Create the ARA log directory and store the sqlite source database
+ mkdir -p ${LOG_PATH}/ara/
+ rsync -q -a "${HOME}/.ara/ansible.sqlite" "${LOG_PATH}/ara/"
}
# vim: set ts=4 sw=4 expandtab:
diff --git a/xci/xci-deploy.sh b/xci/xci-deploy.sh
index 19ae7c0e..fa9f3351 100755
--- a/xci/xci-deploy.sh
+++ b/xci/xci-deploy.sh
@@ -25,10 +25,15 @@ submit_bug_report() {
echo "xci installer: $INSTALLER_TYPE"
echo "xci scenario: $DEPLOY_SCENARIO"
echo "Environment variables:"
- env | grep --color=never '\(OPNFV\|XCI\|INSTALLER_TYPE\|OPENSTACK\|SCENARIO\)'
+ env | grep --color=never '\(OPNFV\|XCI\|INSTALLER_TYPE\|OPENSTACK\|SCENARIO\|ANSIBLE\)'
echo "-------------------------------------------------------------------------"
}
+exit_trap() {
+ submit_bug_report
+ collect_xci_logs
+}
+
#-------------------------------------------------------------------------------
# This script should not be run as root
#-------------------------------------------------------------------------------
@@ -86,7 +91,7 @@ done
unset user_local_dev_vars local_user_var
# register our handler
-trap submit_bug_report ERR
+trap exit_trap ERR
# We are using sudo so we need to make sure that env_reset is not present
sudo sed -i "s/^Defaults.*env_reset/#&/" /etc/sudoers
@@ -151,10 +156,15 @@ echo "Info: Deploying '${INSTALLER_TYPE}' installer"
echo "-----------------------------------------------------------------------"
source ${XCI_PATH}/xci/installer/${INSTALLER_TYPE}/deploy.sh
+# Reset trap
+trap ERR
+
# Deployment time
xci_deploy_time=$SECONDS
echo "-------------------------------------------------------------------------------------------------------------"
echo "Info: xci_deploy.sh deployment took $(($xci_deploy_time / 60)) minutes and $(($xci_deploy_time % 60)) seconds"
echo "-------------------------------------------------------------------------------------------------------------"
+collect_xci_logs
+
# vim: set ts=4 sw=4 expandtab: