Fixes mismatch for Java APIs between HC and VPP and L2 pkgs 03/29503/7
authorTim Rozet <trozet@redhat.com>
Tue, 28 Feb 2017 22:27:48 +0000 (17:27 -0500)
committerTim Rozet <trozet@redhat.com>
Fri, 10 Mar 2017 16:42:38 +0000 (11:42 -0500)
This copies the same API jars used for VPP to the Honeycomb to help
workaround the issues we are facing of incompatible Java APIs between HC
and VPP versions.  It also locks vpp/honeycomb/odl to known working
packages for L2 scenarios.

Also increases overcloud disk +400MB to accomodate more vpp pkgs.

opnfv-tht-pr: 122

Change-Id: Id803834e1f1fa352778784da9ac246ab9c58a3b1
Signed-off-by: Tim Rozet <trozet@redhat.com>
build/honeycomb-jar-replace.sh [new file with mode: 0755]
build/overcloud-full.sh
build/overcloud-opendaylight.sh
build/variables.sh
lib/overcloud-deploy-functions.sh

diff --git a/build/honeycomb-jar-replace.sh b/build/honeycomb-jar-replace.sh
new file mode 100755 (executable)
index 0000000..f89ddda
--- /dev/null
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+JARS=$(find /usr/share/java/ -type f -iname 'jvpp-*.jar')
+if [ -z "$JARS" ]; then
+  echo "ERROR: JARS to replace from vpp-api-java are empty!"
+  exit 1
+fi
+
+for JAR in $JARS; do
+  JAR_PREFIX=$(basename $JAR | sed -n 's/-[0-9]\+\.[0-9]\+\.jar$//p')
+  JAR_VERSION=$(basename $JAR | grep -Eo '[0-9]+.[0-9]+')
+  HC_JAR_DIR=/opt/honeycomb/lib/io/fd/vpp/${JAR_PREFIX}/${JAR_VERSION}-SNAPSHOT
+  if [ ! -d "$HC_JAR_DIR" ]; then
+    echo "ERROR: Honeycomb JAR destination directory does not exist!"
+    exit 1
+  else
+    cp -f ${JAR} ${HC_JAR_DIR}/${JAR_PREFIX}-${JAR_VERSION}-SNAPSHOT.jar
+    echo "INFO: VPP API JAR: ${JAR} copied to ${HC_JAR_DIR}"
+  fi
+done
index b94c0cb..4222b27 100755 (executable)
@@ -80,8 +80,15 @@ EOF
 # Get Real Time Kernel from kvm4nfv
 populate_cache $kvmfornfv_uri_base/$kvmfornfv_kernel_rpm
 
-# Increase disk size by 500MB to accommodate more packages
-qemu-img resize overcloud-full_build.qcow2 +500MB
+# ODL/FDIO packages frozen for L2 scenarios
+fdio_l2_pkg_str=''
+for package in ${fdio_l2_pkgs[@]}; do
+  wget "$fdio_l2_uri_base/$package"
+  fdio_l2_pkg_str+=" --upload ${BUILD_DIR}/${package}:/root/fdio_l2/"
+done
+
+# Increase disk size by 900MB to accommodate more packages
+qemu-img resize overcloud-full_build.qcow2 +900MB
 
 # expand file system to max disk size
 # installing forked opnfv-puppet-tripleo
@@ -105,9 +112,11 @@ LIBGUESTFS_BACKEND=direct virt-customize \
     --run-command "mkdir /root/dpdk_rpms" \
     --upload ${BUILD_DIR}/fdio.repo:/etc/yum.repos.d/fdio.repo \
     $dpdk_pkg_str \
-    --run-command "yum install --downloadonly --downloaddir=/root/fdio vpp vpp-devel vpp-lib vpp-api-python vpp-plugins" \
+    --run-command "yum install --downloadonly --downloaddir=/root/fdio vpp vpp-devel vpp-lib vpp-api-python vpp-plugins vpp-api-java" \
     --upload ${BUILD_DIR}/noarch/$netvpp_pkg:/root/fdio \
     --run-command "yum install -y /root/fdio/*.rpm" \
+    --run-command "mkdir /root/fdio_l2" \
+    $fdio_l2_pkg_str \
     --run-command "yum install -y etcd" \
     --install python-etcd \
     --run-command "puppet module install cristifalcas/etcd" \
index cbb2178..4a2173d 100755 (executable)
@@ -88,8 +88,12 @@ LIBGUESTFS_BACKEND=direct virt-customize \
     --upload ${BUILD_DIR}/opendaylight_master.repo:/etc/yum.repos.d/opendaylight.repo \
     --run-command "yum install --downloadonly --downloaddir=/root/master/ opendaylight" \
     --upload ${BUILD_DIR}/opendaylight.repo:/etc/yum.repos.d/opendaylight.repo \
+    --run-command "wget ${fdio_l2_uri_base}/honeycomb-1.17.04-2439.noarch.rpm -O /root/fdio_l2/honeycomb-1.17.04-2439.noarch.rpm" \
+    --run-command "wget ${fdio_l2_uri_base}/opendaylight-6.0.0-0.1.20170228snap4111.el7.noarch.rpm -O /root/fdio_l2/opendaylight-6.0.0-0.1.20170228snap4111.el7.noarch.rpm" \
     --install opendaylight,python-networking-odl \
     --install honeycomb \
+    --upload ${BUILD_ROOT}/honeycomb-jar-replace.sh:/root/ \
+    --run-command "/root/honeycomb-jar-replace.sh" \
     --upload ${BUILD_DIR}/puppet-opendaylight.tar.gz:/etc/puppet/modules/ \
     --run-command "cd /etc/puppet/modules/ && tar xzf puppet-opendaylight.tar.gz" \
     --upload ${BUILD_DIR}/networking-bgpvpn.tar.gz:/root/ \
index 4ba591c..be610d4 100644 (file)
@@ -57,3 +57,11 @@ netvpp_commit=$(git ls-remote ${netvpp_repo} ${netvpp_branch} | awk '{print subs
 netvpp_pkg=python-networking-vpp-0.0.1-1.git${NETVPP_COMMIT}$(rpm -E %dist).noarch.rpm
 
 gluon_rpm=gluon-0.0.1-1_20170216.noarch.rpm
+fdio_l2_uri_base=http://artifacts.opnfv.org/apex/danube/fdio_l2_rpms
+fdio_l2_pkgs=(
+'vpp-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
+'vpp-api-python-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
+'vpp-devel-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
+'vpp-lib-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
+'vpp-plugins-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
+)
index d7e9b7e..a46c6c6 100755 (executable)
@@ -189,6 +189,14 @@ EOI
 EOI
   fi
 
+  # Override any previous packages if FDIO and L2
+  if [[ "${deploy_options_array['vpp']}" == 'True' && "${deploy_options_array['sdn_l3']}" == "False" ]]; then
+    ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
+         LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum -y remove opendaylight vpp vpp-devel vpp-api-python vpp-lib vpp-plugins honeycomb" \
+                                                  --run-command "yum -y install /root/fdio_l2/*.rpm" \
+                                                  -a overcloud-full.qcow2
+EOI
+  fi
 
   # check if ceph should be enabled
   if [ "${deploy_options_array['ceph']}" == 'True' ]; then