Add/Overwrite default images in IMAGE_URLS and detect duplicates
IMAGE_URLS could be set both in localrc with customization or stackrc by default. By setting DOWNLOAD_DEFAULT_IMAGES, user could choose to add default images to IMAGE_URLS or overwrite them. As uploading duplicate images will cause a "409 Conflict" error, a duplicate detection will expose it earlier. Care needs to be taken that you don't end up with a duplicate image, so clean up Xen's README. Depends-On: I6fbae12f950a03afab39f341132746d3db9f788c Change-Id: I3ca4e576aa3fb8992c08ca44900a8c53dd4b4163 Closes-Bug: #1473432
This commit is contained in:
parent
4ebfea9d0d
commit
a4693b5dea
@ -396,6 +396,24 @@ Set the following options to point to the master
|
||||
GLANCE_HOSTPORT=w.x.y.z:9292
|
||||
ENABLED_SERVICES=n-vol,n-cpu,n-net,n-api
|
||||
|
||||
Guest Images
|
||||
------------
|
||||
|
||||
Images provided in URLS via the comma-separated ``IMAGE_URLS``
|
||||
variable will be downloaded and uploaded to glance by DevStack.
|
||||
|
||||
Default guest-images are predefined for each type of hypervisor and
|
||||
their testing-requirements in ``stack.sh``. Setting
|
||||
``DOWNLOAD_DEFAULT_IMAGES=False`` will prevent DevStack downloading
|
||||
these default images; in that case, you will want to populate
|
||||
``IMAGE_URLS`` with sufficient images to satisfy testing-requirements.
|
||||
|
||||
::
|
||||
|
||||
DOWNLOAD_DEFAULT_IMAGES=False
|
||||
IMAGE_URLS="http://foo.bar.com/image.qcow,"
|
||||
IMAGE_URLS+="http://foo.bar.com/image2.qcow"
|
||||
|
||||
IP Version
|
||||
----------
|
||||
|
||||
|
87
stackrc
87
stackrc
@ -2,6 +2,11 @@
|
||||
#
|
||||
# stackrc
|
||||
#
|
||||
|
||||
# ensure we don't re-source this in the same environment
|
||||
[[ -z "$_DEVSTACK_STACKRC" ]] || return 0
|
||||
declare -r _DEVSTACK_STACKRC=1
|
||||
|
||||
# Find the other rc files
|
||||
RC_DIR=$(cd $(dirname "${BASH_SOURCE:-$0}") && pwd)
|
||||
|
||||
@ -560,40 +565,47 @@ CIRROS_ARCH=${CIRROS_ARCH:-"x86_64"}
|
||||
# Set default image based on ``VIRT_DRIVER`` and ``LIBVIRT_TYPE``, either of
|
||||
# which may be set in ``local.conf``. Also allow ``DEFAULT_IMAGE_NAME`` and
|
||||
# ``IMAGE_URLS`` to be set in the `localrc` section of ``local.conf``.
|
||||
case "$VIRT_DRIVER" in
|
||||
openvz)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-ubuntu-12.04-x86_64}
|
||||
IMAGE_URLS=${IMAGE_URLS:-"http://download.openvz.org/template/precreated/ubuntu-12.04-x86_64.tar.gz"};;
|
||||
libvirt)
|
||||
case "$LIBVIRT_TYPE" in
|
||||
lxc) # the cirros root disk in the uec tarball is empty, so it will not work for lxc
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-rootfs}
|
||||
IMAGE_URLS=${IMAGE_URLS:-"http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-rootfs.img.gz"};;
|
||||
*) # otherwise, use the uec style image (with kernel, ramdisk, disk)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-uec}
|
||||
IMAGE_URLS=${IMAGE_URLS:-"http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-uec.tar.gz"};;
|
||||
esac
|
||||
;;
|
||||
vsphere)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-0.3.2-i386-disk.vmdk}
|
||||
IMAGE_URLS=${IMAGE_URLS:-"http://partnerweb.vmware.com/programs/vmdkimage/cirros-0.3.2-i386-disk.vmdk"};;
|
||||
xenserver)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-0.3.4-x86_64-disk}
|
||||
IMAGE_URLS=${IMAGE_URLS:-"http://ca.downloads.xensource.com/OpenStack/cirros-0.3.4-x86_64-disk.vhd.tgz"}
|
||||
IMAGE_URLS+=",http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-uec.tar.gz";;
|
||||
ironic)
|
||||
# Ironic can do both partition and full disk images, depending on the driver
|
||||
if [[ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]]; then
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-x86_64-disk}
|
||||
else
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-x86_64-uec}
|
||||
fi
|
||||
IMAGE_URLS=${IMAGE_URLS:-"http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-uec.tar.gz"}
|
||||
IMAGE_URLS+=",http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-disk.img";;
|
||||
*) # Default to Cirros with kernel, ramdisk and disk image
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-uec}
|
||||
IMAGE_URLS=${IMAGE_URLS:-"http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-uec.tar.gz"};;
|
||||
esac
|
||||
DOWNLOAD_DEFAULT_IMAGES=$(trueorfalse True DOWNLOAD_DEFAULT_IMAGES)
|
||||
if [[ "$DOWNLOAD_DEFAULT_IMAGES" == "True" ]]; then
|
||||
if [ -n $IMAGE_URLS ]; then
|
||||
IMAGE_URLS+=","
|
||||
fi
|
||||
case "$VIRT_DRIVER" in
|
||||
openvz)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-ubuntu-12.04-x86_64}
|
||||
IMAGE_URLS+="http://download.openvz.org/template/precreated/ubuntu-12.04-x86_64.tar.gz";;
|
||||
libvirt)
|
||||
case "$LIBVIRT_TYPE" in
|
||||
lxc) # the cirros root disk in the uec tarball is empty, so it will not work for lxc
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-rootfs}
|
||||
IMAGE_URLS+="http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-rootfs.img.gz";;
|
||||
*) # otherwise, use the uec style image (with kernel, ramdisk, disk)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-uec}
|
||||
IMAGE_URLS+="http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-uec.tar.gz";;
|
||||
esac
|
||||
;;
|
||||
vsphere)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-0.3.2-i386-disk.vmdk}
|
||||
IMAGE_URLS+="http://partnerweb.vmware.com/programs/vmdkimage/cirros-0.3.2-i386-disk.vmdk";;
|
||||
xenserver)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-0.3.4-x86_64-disk}
|
||||
IMAGE_URLS+="http://ca.downloads.xensource.com/OpenStack/cirros-0.3.4-x86_64-disk.vhd.tgz"
|
||||
IMAGE_URLS+=",http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-uec.tar.gz";;
|
||||
ironic)
|
||||
# Ironic can do both partition and full disk images, depending on the driver
|
||||
if [[ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]]; then
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-x86_64-disk}
|
||||
else
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-x86_64-uec}
|
||||
fi
|
||||
IMAGE_URLS+="http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-uec.tar.gz"
|
||||
IMAGE_URLS+=",http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-disk.img";;
|
||||
*) # Default to Cirros with kernel, ramdisk and disk image
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-uec}
|
||||
IMAGE_URLS+="http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-uec.tar.gz";;
|
||||
esac
|
||||
DOWNLOAD_DEFAULT_IMAGES=False
|
||||
fi
|
||||
|
||||
# Staging Area for New Images, have them here for at least 24hrs for nodepool
|
||||
# to cache them otherwise the failure rates in the gate are too high
|
||||
@ -606,6 +618,13 @@ if [[ "$PRECACHE_IMAGES" == "True" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# Detect duplicate values in IMAGE_URLS
|
||||
for image_url in ${IMAGE_URLS//,/ }; do
|
||||
if [ $(echo "$IMAGE_URLS" | grep -o -F "$image_url" | wc -l) -gt 1 ]; then
|
||||
die $LINENO "$image_url is duplicate, please remove it from IMAGE_URLS."
|
||||
fi
|
||||
done
|
||||
|
||||
# 10Gb default volume backing file size
|
||||
VOLUME_BACKING_FILE_SIZE=${VOLUME_BACKING_FILE_SIZE:-10250M}
|
||||
|
||||
|
@ -94,11 +94,6 @@ Of course, use real passwords if this machine is exposed.
|
||||
XENAPI_CONNECTION_URL="http://address_of_your_xenserver"
|
||||
VNCSERVER_PROXYCLIENT_ADDRESS=address_of_your_xenserver
|
||||
|
||||
# Download a vhd and a uec image
|
||||
IMAGE_URLS="\
|
||||
https://github.com/downloads/citrix-openstack/warehouse/cirros-0.3.0-x86_64-disk.vhd.tgz,\
|
||||
http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-uec.tar.gz"
|
||||
|
||||
# Explicitly set virt driver
|
||||
VIRT_DRIVER=xenserver
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user