summaryrefslogtreecommitdiffstats
path: root/ci
diff options
context:
space:
mode:
Diffstat (limited to 'ci')
-rw-r--r--ci/PR_revision.log1
-rwxr-xr-xci/build.sh20
-rwxr-xr-xci/clean.sh3
-rwxr-xr-xci/deploy.sh95
4 files changed, 111 insertions, 8 deletions
diff --git a/ci/PR_revision.log b/ci/PR_revision.log
index e20a8ceb..5fd8dad0 100644
--- a/ci/PR_revision.log
+++ b/ci/PR_revision.log
@@ -4,3 +4,4 @@
#PR number, PR Title
15,Add sleep to galera and mongodb service start
18,Fix sql race condition
+21,Serialize db_sync calls and increase sql-sleep timer \ No newline at end of file
diff --git a/ci/build.sh b/ci/build.sh
index dd9f9fd1..1bd96d53 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -34,6 +34,7 @@ BUILD_BASE=$(readlink -e ../build/)
CACHE_DEST=""
CACHE_DIR="cache"
CACHE_NAME="apex-cache"
+PYTHON_TESTS="TRUE"
MAKE_TARGETS="images"
REQUIRED_PKGS="rpm-build python-docutils"
@@ -63,6 +64,11 @@ parse_cmdline() {
echo "Buiding opnfv-apex RPMs"
shift 1
;;
+ --skip-python-tests )
+ PYTHON_TESTS="FALSE"
+ echo "Skipping Python Tests"
+ shift 1
+ ;;
--debug )
debug="TRUE"
echo "Enable debug output"
@@ -145,6 +151,20 @@ if ! rpm -q python34-devel > /dev/null; then
fi
fi
+if [ "$PYTHON_TESTS" == "TRUE" ]; then
+ # Make sure coverage is installed
+ if ! python3 -c "import coverage" &> /dev/null; then sudo easy_install-3.4 coverage; fi
+
+ run_make python-tests
+ pushd ../tests/ > /dev/null
+ percent=$(coverage3 report --include '*lib/python/*' -m | grep TOTAL | tr -s ' ' | awk '{ print $4 }' | cut -d % -f 1)
+ if [[ percent -lt 80 ]]; then
+ echo "Python Coverage: $percent"
+ echo "WARNING: Does not meet 80% requirement"
+ fi
+ popd
+fi
+
# Execute make against targets
for t in $MAKE_TARGETS; do
run_make $t
diff --git a/ci/clean.sh b/ci/clean.sh
index b898fc9c..b7f10582 100755
--- a/ci/clean.sh
+++ b/ci/clean.sh
@@ -66,4 +66,7 @@ sed -i '/virtual-power-key/d' /root/.ssh/authorized_keys
# force storage cleanup
virsh pool-refresh default
+# remove temporary files
+rm -f /tmp/network-environment.yaml
+
echo "Cleanup Completed"
diff --git a/ci/deploy.sh b/ci/deploy.sh
index 6ccd4c8c..6510053e 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -535,6 +535,13 @@ EOF
#virsh vol-list default | grep baremetal${i} 2>&1> /dev/null || virsh vol-create-as default baremetal${i}.qcow2 41G --format qcow2
mac=$(virsh domiflist baremetal${i} | grep admin_network | awk '{ print $5 }')
+ if [ "$VM_COMPUTES" -gt 0 ]; then
+ capability="profile:compute"
+ VM_COMPUTES=$((VM_COMPUTES - 1))
+ else
+ capability="profile:control"
+ fi
+
cat >> $CONFIG/instackenv-virt.json << EOF
{
"pm_addr": "192.168.122.1",
@@ -547,7 +554,8 @@ EOF
"cpu": "$vcpus",
"memory": "$ramsize",
"disk": "41",
- "arch": "x86_64"
+ "arch": "x86_64",
+ "capabilities": "$capability"
},
EOF
done
@@ -567,6 +575,12 @@ EOF
"ssh-user": "root"
}
EOF
+ #Overwrite the tripleo-inclubator domain.xml with our own, keeping a backup.
+ if [ ! -f /usr/share/tripleo/templates/domain.xml.bak ]; then
+ /usr/bin/mv -f /usr/share/tripleo/templates/domain.xml /usr/share/tripleo/templates/domain.xml.bak
+ fi
+
+ /usr/bin/cp -f $LIB/installer/domain.xml /usr/share/tripleo/templates/domain.xml
}
##Create virtual nodes in virsh
@@ -789,6 +803,12 @@ function undercloud_prep_overcloud_deploy {
exit 1
fi
+ # Handle different dataplanes
+ if [ "${deploy_options_array['dataplane']}" != 'ovs']; then
+ echo "${red}ovs is the only currently available dataplane. ${deploy_options_array['dataplane']} not implemented${reset}"
+ exit 1
+ fi
+
# Make sure the correct overcloud image is available
if [ ! -f $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then
echo "${red} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute your deployment."
@@ -801,14 +821,74 @@ function undercloud_prep_overcloud_deploy {
ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "rm -f overcloud-full.qcow2"
scp ${SSH_OPTIONS[@]} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 "stack@$UNDERCLOUD":overcloud-full.qcow2
- # Push performance options to subscript to modify per-role images as needed
- for option in "${performance_options[@]}" ; do
- echo -e "${blue}Setting performance option $option${reset}"
- ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "bash build_perf_image.sh $option"
- done
+ # Install ovs-dpdk inside the overcloud image if it is enabled.
+ if [ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' ]; then
+ # install dpdk packages before ovs
+ echo -e "${blue}INFO: Enabling kernel modules for dpdk inside overcloud image${reset}"
+
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
+ cat << EOF > vfio_pci.modules
+#!/bin/bash
+exec /sbin/modprobe vfio_pci >/dev/null 2>&1
+EOF
+
+ cat << EOF > uio_pci_generic.modules
+#!/bin/bash
+exec /sbin/modprobe uio_pci_generic >/dev/null 2>&1
+EOF
+
+ LIBGUESTFS_BACKEND=direct virt-customize --upload vfio_pci.modules:/etc/sysconfig/modules/ \
+ --upload uio_pci_generic.modules:/etc/sysconfig/modules/ \
+ --run-command "chmod 0755 /etc/sysconfig/modules/vfio_pci.modules" \
+ --run-command "chmod 0755 /etc/sysconfig/modules/uio_pci_generic.modules" \
+ -a overcloud-full.qcow2
+EOI
+
+ fi
# Add performance deploy options if they have been set
if [ ! -z "${deploy_options_array['performance']}" ]; then
+
+ # Remove previous kernel args files per role
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "rm -f Compute-kernel_params.txt"
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "rm -f Controller-kernel_params.txt"
+
+ # Push performance options to subscript to modify per-role images as needed
+ for option in "${performance_options[@]}" ; do
+ echo -e "${blue}Setting performance option $option${reset}"
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "bash build_perf_image.sh $option"
+ done
+
+ # Build IPA kernel option ramdisks
+ ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" <<EOI
+/bin/cp -f /home/stack/ironic-python-agent.initramfs /root/
+mkdir -p ipa/
+pushd ipa
+gunzip -c ../ironic-python-agent.initramfs | cpio -i
+if [ ! -f /home/stack/Compute-kernel_params.txt ]; then
+ touch /home/stack/Compute-kernel_params.txt
+ chown stack /home/stack/Compute-kernel_params.txt
+fi
+/bin/cp -f /home/stack/Compute-kernel_params.txt tmp/kernel_params.txt
+echo "Compute params set: "
+cat tmp/kernel_params.txt
+/bin/cp -f /root/image.py usr/lib/python2.7/site-packages/ironic_python_agent/extensions/image.py
+/bin/cp -f /root/image.pyc usr/lib/python2.7/site-packages/ironic_python_agent/extensions/image.pyc
+find . | cpio -o -H newc | gzip > /home/stack/Compute-ironic-python-agent.initramfs
+chown stack /home/stack/Compute-ironic-python-agent.initramfs
+if [ ! -f /home/stack/Controller-kernel_params.txt ]; then
+ touch /home/stack/Controller-kernel_params.txt
+ chown stack /home/stack/Controller-kernel_params.txt
+fi
+/bin/cp -f /home/stack/Controller-kernel_params.txt tmp/kernel_params.txt
+echo "Controller params set: "
+cat tmp/kernel_params.txt
+find . | cpio -o -H newc | gzip > /home/stack/Controller-ironic-python-agent.initramfs
+chown stack /home/stack/Controller-ironic-python-agent.initramfs
+popd
+/bin/rm -rf ipa/
+EOI
+
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml"
fi
@@ -864,11 +944,10 @@ set -o errexit
echo "Uploading overcloud glance images"
openstack overcloud image upload
-bash -x set_perf_images.sh ${performance_roles[@]}
-
echo "Configuring undercloud and discovering nodes"
openstack baremetal import --json instackenv.json
openstack baremetal configure boot
+bash -x set_perf_images.sh ${performance_roles[@]}
#if [[ -z "$virtual" ]]; then
# openstack baremetal introspection bulk start
#fi