|  | #!/bin/bash | 
|  |  | 
|  | # Print out a list of image and other files to download for caching. | 
|  | # This is mostly used by the OpenStack infrasturucture during daily | 
|  | # image builds to save the large images to /opt/cache/files (see [1]) | 
|  | # | 
|  | # The two lists of URL's downloaded are the IMAGE_URLS and | 
|  | # EXTRA_CACHE_URLS, which are setup in stackrc | 
|  | # | 
|  | # [1] project-config:nodepool/elements/cache-devstack/extra-data.d/55-cache-devstack-repos | 
|  |  | 
|  | # Keep track of the DevStack directory | 
|  | TOP_DIR=$(cd $(dirname "$0")/.. && pwd) | 
|  |  | 
|  | # The following "source" implicitly calls get_default_host_ip() in | 
|  | # stackrc and will die if the selected default IP happens to lie | 
|  | # in the default ranges for FIXED_RANGE or FLOATING_RANGE. Since we | 
|  | # do not really need HOST_IP to be properly set in the remainder of | 
|  | # this script, just set it to some dummy value and make stackrc happy. | 
|  | HOST_IP=SKIP | 
|  | source $TOP_DIR/functions | 
|  |  | 
|  | # Possible virt drivers, if we have more, add them here. Always keep | 
|  | # dummy in the end position to trigger the fall through case. | 
|  | DRIVERS="openvz ironic libvirt vsphere dummy" | 
|  |  | 
|  | # Extra variables to trigger getting additional images. | 
|  | export ENABLED_SERVICES="h-api,tr-api" | 
|  | HEAT_FETCHED_TEST_IMAGE="Fedora-i386-20-20131211.1-sda" | 
|  | PRECACHE_IMAGES=True | 
|  |  | 
|  | # Loop over all the virt drivers and collect all the possible images | 
|  | ALL_IMAGES="" | 
|  | for driver in $DRIVERS; do | 
|  | VIRT_DRIVER=$driver | 
|  | URLS=$(source $TOP_DIR/stackrc && echo $IMAGE_URLS) | 
|  | if [[ ! -z "$ALL_IMAGES" ]]; then | 
|  | ALL_IMAGES+=, | 
|  | fi | 
|  | ALL_IMAGES+=$URLS | 
|  | done | 
|  |  | 
|  | # Sanity check - ensure we have a minimum number of images | 
|  | num=$(echo $ALL_IMAGES | tr ',' '\n' | sort | uniq | wc -l) | 
|  | if [[ "$num" -lt 4 ]]; then | 
|  | echo "ERROR: We only found $num images in $ALL_IMAGES, which can't be right." | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | # This is extra non-image files that we want pre-cached.  This is kept | 
|  | # in a separate list because devstack loops over the IMAGE_LIST to | 
|  | # upload files glance and these aren't images.  (This was a bit of an | 
|  | # after-thought which is why the naming around this is very | 
|  | # image-centric) | 
|  | URLS=$(source $TOP_DIR/stackrc && echo $EXTRA_CACHE_URLS) | 
|  | ALL_IMAGES+=$URLS | 
|  |  | 
|  | # Make a nice combined list | 
|  | echo $ALL_IMAGES | tr ',' '\n' | sort | uniq |