#!/bin/bash ############################################################################## # Copyright (c) 2017 ZTE corporation and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## # installs dpdk and pktgen packages on modified image # PREREQUISITES # modified image (yardstick-wily-server) must be uploaded to OpenStack # heat must be installed: apt-get install python-heatclient, python-glanceclient, python-nova # must have a public yardstick-key uploaded in openstack # must have a proper flavor for the image (i.e. m1.small) stackname="yardstick-modify-stack" template=dpdk_install.yml new_image_name="yardstick-image-pktgen-ready" openstack stack create $stackname -f yaml -t $template progress="WARMING_UP" while [ "$progress" != "CREATE_COMPLETE" ] do sleep 10 echo "check stack status......." show_output=$(openstack stack show $stackname) progress=$(echo $show_output | sed 's/^.*stack_status . \([^ ]*\).*$/\1/') echo "$progress" if [ "$progress" == "CREATE_FAILED" ];then echo "create $stackname failed" exit 1 fi done # workaround: Without wait time, the file size of pktgen is zero in the snapshot. sleep 60 status=$(nova image-create --poll $stackname $new_image_name) if [[ "$status" =~ "Finished" ]];then echo "$new_image_name finished" fi nova delete $stackname sleep 10 openstack stack delete --yes $stackname