echo "--------------------------"
echo
+if [ -z "$SNAP_TYPE" ]; then
+ echo "ERROR: SNAP_TYPE not provided...exiting"
+ exit 1
+fi
+
echo "Cleaning server"
pushd ci > /dev/null
-sudo CONFIG=../build/ LIB=../lib ./clean.sh
+sudo opnfv-clean
popd > /dev/null
+full_snap_url="gs://${GS_URL}/${OS_VERSION}/${TOPOLOGY}"
+
echo "Downloading latest snapshot properties file"
-if ! wget -O $WORKSPACE/opnfv.properties http://$GS_URL/snapshot.properties; then
- echo "ERROR: Unable to find snapshot.properties at ${GS_URL}...exiting"
+if ! gsutil cp ${full_snap_url}/snapshot.properties $WORKSPACE/opnfv.properties; then
+ echo "ERROR: Unable to find snapshot.properties at ${full_snap_url}...exiting"
exit 1
fi
+echo "Properties contents:"
+cat ${WORKSPACE}/opnfv.properties
+
# find latest check sum
-latest_snap_checksum=$(cat opnfv.properties | grep OPNFV_SNAP_SHA512SUM | awk -F "=" '{print $2}')
+latest_snap_checksum=$(cat ${WORKSPACE}/opnfv.properties | grep ${SNAP_TYPE}_SNAP_SHA512SUM | awk -F "=" '{print $2}')
if [ -z "$latest_snap_checksum" ]; then
echo "ERROR: checksum of latest snapshot from snapshot.properties is null!"
exit 1
fi
local_snap_checksum=""
+SNAP_CACHE=${SNAP_CACHE}/${OS_VERSION}/${TOPOLOGY}
# check snap cache directory exists
# if snapshot cache exists, find the checksum
if [ -d "$SNAP_CACHE" ]; then
- latest_snap=$(ls ${SNAP_CACHE} | grep tar.gz | tail -n 1)
+ latest_snap=$(ls ${SNAP_CACHE} | grep tar.gz | grep $SNAP_TYPE | tail -n 1)
if [ -n "$latest_snap" ]; then
local_snap_checksum=$(sha512sum ${SNAP_CACHE}/${latest_snap} | cut -d' ' -f1)
+ echo "Local snap checksum is: ${local_snap_checksum}"
fi
else
mkdir -p ${SNAP_CACHE}
# compare check sum and download latest snap if not up to date
if [ "$local_snap_checksum" != "$latest_snap_checksum" ]; then
- snap_url=$(cat opnfv.properties | grep OPNFV_SNAP_URL | awk -F "=" '{print $2}')
+ snap_url=$(cat opnfv.properties | grep ${SNAP_TYPE}_SNAP_URL | awk -F "=" '{print $2}')
+ # TODO(trozet): Remove this once OPNFV url is deprecated
+ if [[ -z "$snap_url" && "$SNAP_TYPE" == 'csit' ]]; then
+ echo "WARN: Unable to find snap url for ${SNAP_TYPE}, attempting to use OPNFV"
+ snap_url=$(cat opnfv.properties | grep OPNFV_SNAP_URL | awk -F "=" '{print $2}')
+ fi
if [ -z "$snap_url" ]; then
echo "ERROR: Snap URL from snapshot.properties is null!"
exit 1
echo "INFO: SHA mismatch, will download latest snapshot"
# wipe cache
rm -rf ${SNAP_CACHE}/*
- wget --directory-prefix=${SNAP_CACHE}/ ${snap_url}
+ gsutil cp "gs://${snap_url}" ${SNAP_CACHE}/
snap_tar=$(basename ${snap_url})
else
snap_tar=${latest_snap}
exit 1
fi
+echo "Checking overcloudrc"
+if ! stat overcloudrc; then
+ echo "ERROR: overcloudrc does not exist in snap unpack"
+ exit 1
+fi
+
for network_def in ${virsh_networks}; do
sudo virsh net-create ${network_def}
network=$(echo ${network_def} | awk -F '.' '{print $1}')
sudo ip addr add 192.0.2.99/24 dev br-admin
sudo ip link set up dev br-admin
elif [ "br-${network}" == 'br-external' ]; then
- echo "Configuring IP 192.168.37.99 on br-external"
- sudo ip addr add 192.168.37.99/24 dev br-external
+ echo "Configuring IP 192.168.37.1 on br-external"
+ sudo ip addr add 192.168.37.1/24 dev br-external
sudo ip link set up dev br-external
+ # Routes for admin network
+ # The overcloud controller is multi-homed and will fail to respond
+ # to traffic from the functest container due to reverse-path-filtering
+ # This route allows reverse traffic, by forcing admin network destined
+ # traffic through the external network for controller IPs only.
+ # Compute nodes have no ip on external interfaces.
+ controller_ips=$(cat overcloudrc | grep -Eo "192.0.2.[0-9]+")
+ for ip in $controller_ips; do
+ sudo ip route add ${ip}/32 dev br-external
+ done
fi
fi
done
fi
for node_def in ${virsh_vm_defs}; do
+ sed -ri "s/machine='[^\s]+'/machine='pc'/" ${node_def}
sudo virsh define ${node_def}
node=$(echo ${node_def} | awk -F '.' '{print $1}')
sudo cp -f ${node}.qcow2 /var/lib/libvirt/images/
echo "Node: ${node} started"
done
-echo "Checking overcloudrc"
-if ! stat overcloudrc; then
- echo "ERROR: overcloudrc does not exist in snap unpack"
- exit 1
-fi
-
# copy overcloudrc for functest
mkdir -p $HOME/cloner-info
cp -f overcloudrc $HOME/cloner-info/
-admin_controller_ip=$(cat overcloudrc | grep -Eo "192.0.2.[0-9]+")
+admin_controller_ip=$(cat overcloudrc | grep -Eo -m 1 "192.0.2.[0-9]+" | head -1)
netvirt_url="http://${admin_controller_ip}:8081/restconf/operational/network-topology:network-topology/topology/netvirt:1"
source overcloudrc
counter=1
while [ "$counter" -le 10 ]; do
- if curl --fail --silent ${admin_controller_ip}:80 > /dev/null; then
- echo "Overcloud Horizon is up...Checking if OpenDaylight NetVirt is up..."
- if curl --fail --silent -u admin:admin ${netvirt_url} > /dev/null; then
+ echo "Checking if OpenStack is up"
+ if nc -z ${admin_controller_ip} 9696 > /dev/null; then
+ echo "Overcloud Neutron is up...Checking if OpenDaylight NetVirt is up..."
+ if curl --fail --silent -u admin:${SDN_CONTROLLER_PASSWORD} ${netvirt_url} > /dev/null; then
echo "OpenDaylight is up. Overcloud deployment complete"
exit 0
else
echo "OpenDaylight not yet up, try ${counter}"
fi
else
- echo "Horizon/Apache not yet up, try ${counter}"
+ echo "Neutron not yet up, try ${counter}"
fi
counter=$((counter+1))
sleep 60