set -o nounset
set -o pipefail
-APEX_PKGS="common undercloud opendaylight-sfc onos"
+APEX_PKGS="common undercloud onos"
+IPV6_FLAG=False
# log info to console
echo "Starting the Apex virtual deployment."
fi
# source the file so we get OPNFV vars
source opnfv.properties
- RPM_INSTALL_PATH=$(echo $OPNFV_RPM_URL | sed 's/'"$(basename $OPNFV_RPM_URL)"'//')
- RPM_LIST=$RPM_INSTALL_PATH/$(basename $OPNFV_RPM_URL)
+ RPM_INSTALL_PATH=$(echo "http://"$OPNFV_RPM_URL | sed 's/\/'"$(basename $OPNFV_RPM_URL)"'//')
+ RPM_LIST=${RPM_INSTALL_PATH}/$(basename $OPNFV_RPM_URL)
fi
fi
DEPLOY_SETTINGS_DIR="${WORKSPACE}/config/deploy"
NETWORK_SETTINGS_DIR="${WORKSPACE}/config/network"
DEPLOY_CMD="$(pwd)/deploy.sh"
- export RESOURCES="${WORKSPACE}/build/images/"
- export CONFIG="${WORKSPACE}/build"
- export LIB="${WORKSPACE}/lib"
+ RESOURCES="${WORKSPACE}/.build/"
+ CONFIG="${WORKSPACE}/build"
+ LIB="${WORKSPACE}/lib"
# Make sure python34 deps are installed
for dep_pkg in epel-release python34 python34-PyYAML python34-setuptools; do
if ! rpm -q ${dep_pkg} > /dev/null; then
fi
done
+ # Make sure jinja2 is installed
+ for python_pkg in jinja2; do
+ if ! python3.4 -c "import $python_pkg"; then
+ echo "$python_pkg package not found for python3.4, attempting to install..."
+ if ! sudo easy_install-3.4 $python_pkg; then
+ echo -e "Failed to install $python_pkg package for python3.4"
+ exit 1
+ fi
+ fi
+ done
+
+ # Make sure ipxe-roms-qemu package is updated to latest.
+ # This package is needed for multi virtio nic PXE boot in virtual environment.
+ sudo yum update -y ipxe-roms-qemu
+
if [ -z ${PYTHONPATH:-} ]; then
export PYTHONPATH=${WORKSPACE}/lib/python
else
DEPLOY_CMD=opnfv-deploy
DEPLOY_SETTINGS_DIR="/etc/opnfv-apex/"
NETWORK_SETTINGS_DIR="/etc/opnfv-apex/"
- export RESOURCES="/var/opt/opnfv/images"
- export CONFIG="/var/opt/opnfv"
+ RESOURCES="/var/opt/opnfv/images"
+ CONFIG="/var/opt/opnfv"
+ LIB="/var/opt/opnfv/lib"
fi
+# set env vars to deploy cmd
+DEPLOY_CMD="CONFIG=${CONFIG} RESOURCES=${RESOURCES} LIB=${LIB} ${DEPLOY_CMD}"
+
if [ "$OPNFV_CLEAN" == 'yes' ]; then
- if [[ "$BUILD_DIRECTORY" == *verify* ]]; then
- sudo ./clean.sh
- else
- sudo opnfv-clean
- fi
+ if sudo test -e '/root/inventory/pod_settings.yaml'; then
+ clean_opts='-i /root/inventory/pod_settings.yaml'
+ else
+ clean_opts=''
+ fi
+ if [[ "$BUILD_DIRECTORY" == *verify* ]]; then
+ sudo CONFIG=${CONFIG} LIB=${LIB} ./clean.sh ${clean_opts}
+ else
+ sudo CONFIG=${CONFIG} LIB=${LIB} opnfv-clean ${clean_opts}
+ fi
+fi
+
+if echo ${DEPLOY_SCENARIO} | grep ipv6; then
+ IPV6_FLAG=True
+ DEPLOY_SCENARIO=$(echo ${DEPLOY_SCENARIO} | sed 's/-ipv6//')
+ echo "INFO: IPV6 Enabled"
fi
echo "Deploy Scenario set to ${DEPLOY_SCENARIO}"
if [[ "$JOB_NAME" == *virtual* ]]; then
# settings for virtual deployment
- NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings.yaml"
+ if [ "$IPV6_FLAG" == "True" ]; then
+ NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_v6.yaml"
+ else
+ NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings.yaml"
+ fi
DEPLOY_CMD="${DEPLOY_CMD} -v"
else
# settings for bare metal deployment
- NETWORK_FILE="/root/network/network_settings.yaml"
+ if [ "$IPV6_FLAG" == "True" ]; then
+ NETWORK_FILE="/root/network/network_settings_v6.yaml"
+ elif [[ "$JOB_NAME" == *master* ]]; then
+ NETWORK_FILE="/root/network/network_settings-master.yaml"
+ else
+ NETWORK_FILE="/root/network/network_settings.yaml"
+ fi
INVENTORY_FILE="/root/inventory/pod_settings.yaml"
- if [ ! -e "$INVENTORY_FILE" ]; then
+ if ! sudo test -e "$INVENTORY_FILE"; then
echo "ERROR: Required settings file missing: Inventory settings file ${INVENTORY_FILE}"
+ exit 1
fi
# include inventory file for bare metal deployment
DEPLOY_CMD="${DEPLOY_CMD} -i ${INVENTORY_FILE}"
fi
# Check that network settings file exists
-if [ ! -e "$NETWORK_FILE" ]; then
- echo "ERROR: Required settings file missing for Network Settings"
- echo "Network settings file: ${NETWORK_FILE}"
+if ! sudo test -e "$NETWORK_FILE"; then
+ echo "ERROR: Required settings file missing: Network Settings file ${NETWORK_FILE}"
exit 1
fi