d8bb220606
We need this for every devstack run now, so downloading it from github every time isn't the most awesome thing in the world. Add an extra variable EXTRA_CACHE_URLS which will be appended to the output of tools/image_list.sh. This way, these files will be downloaded during the daily nodepool build, but they will not be in the IMAGE_LIST and hence be considered as images to upload. Add a function get_extra_file which echos the path to a file given the URL. It will first check the cache at $FILES, and if not present download it. Update the documentation in image_list.sh to reflect what's happening. Move the defaults for etcd variables into stackrc, since it is a base service now. Change-Id: I86104824a29d973a6288df1f24b7891feb86267c
60 lines
2.2 KiB
Bash
Executable File
60 lines
2.2 KiB
Bash
Executable File
#!/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 xenserver 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
|