support non "uec style" IMAGE_URLS
This adds support for image urls that end in .img.gz or .img. The assumption is that they're a full disk image or a compressed disk image. Some examples: https://cloud-images.ubuntu.com/server/releases/11.10/release/ubuntu-11.10-server-cloudimg-i386-disk1.img http://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-rootfs.img.gz http://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img Change-Id: I79b67b461fb02f2403dad3e15f630fa9817eb0db
This commit is contained in:
parent
6b549fdb13
commit
4f6d7b61b3
43
stack.sh
43
stack.sh
@ -1215,20 +1215,55 @@ if [[ "$ENABLED_SERVICES" =~ "g-reg" ]]; then
|
||||
for image_url in ${IMAGE_URLS//,/ }; do
|
||||
# Downloads the image (uec ami+aki style), then extracts it.
|
||||
IMAGE_FNAME=`basename "$image_url"`
|
||||
IMAGE_NAME=`basename "$IMAGE_FNAME" .tar.gz`
|
||||
if [ ! -f $FILES/$IMAGE_FNAME ]; then
|
||||
wget -c $image_url -O $FILES/$IMAGE_FNAME
|
||||
fi
|
||||
|
||||
KERNEL=""
|
||||
RAMDISK=""
|
||||
case "$IMAGE_FNAME" in
|
||||
*.tar.gz|*.tgz)
|
||||
# Extract ami and aki files
|
||||
tar -zxf $FILES/$IMAGE_FNAME -C $FILES/images
|
||||
[ "${IMAGE_FNAME%.tar.gz}" != "$IMAGE_FNAME" ] &&
|
||||
IMAGE_NAME="${IMAGE_FNAME%.tar.gz}" ||
|
||||
IMAGE_NAME="${IMAGE_FNAME%.tgz}"
|
||||
xdir="$FILES/images/$IMAGE_NAME"
|
||||
rm -Rf "$xdir";
|
||||
mkdir "$xdir"
|
||||
tar -zxf $FILES/$IMAGE_FNAME -C "$xdir"
|
||||
KERNEL=$(for f in "$xdir/"*-vmlinuz*; do
|
||||
[ -f "$f" ] && echo "$f" && break; done; true)
|
||||
RAMDISK=$(for f in "$xdir/"*-initrd*; do
|
||||
[ -f "$f" ] && echo "$f" && break; done; true)
|
||||
IMAGE=$(for f in "$xdir/"*.img; do
|
||||
[ -f "$f" ] && echo "$f" && break; done; true)
|
||||
[ -n "$IMAGE_NAME" ]
|
||||
IMAGE_NAME=$(basename "$IMAGE" ".img")
|
||||
;;
|
||||
*.img)
|
||||
IMAGE="$FILES/$IMAGE_FNAME";
|
||||
IMAGE_NAME=$(basename "$IMAGE" ".img")
|
||||
;;
|
||||
*.img.gz)
|
||||
IMAGE="$FILES/${IMAGE_FNAME}"
|
||||
IMAGE_NAME=$(basename "$IMAGE" ".img.gz")
|
||||
;;
|
||||
*) echo "Do not know what to do with $IMAGE_FNAME"; false;;
|
||||
esac
|
||||
|
||||
# Use glance client to add the kernel the root filesystem.
|
||||
# We parse the results of the first upload to get the glance ID of the
|
||||
# kernel for use when uploading the root filesystem.
|
||||
RVAL=`glance add -A $SERVICE_TOKEN name="$IMAGE_NAME-kernel" is_public=true container_format=aki disk_format=aki < $FILES/images/$IMAGE_NAME-vmlinuz*`
|
||||
KERNEL_ID=""; RAMDISK_ID="";
|
||||
if [ -n "$KERNEL" ]; then
|
||||
RVAL=`glance add -A $SERVICE_TOKEN name="$IMAGE_NAME-kernel" is_public=true container_format=aki disk_format=aki < "$KERNEL"`
|
||||
KERNEL_ID=`echo $RVAL | cut -d":" -f2 | tr -d " "`
|
||||
glance add -A $SERVICE_TOKEN name="$IMAGE_NAME" is_public=true container_format=ami disk_format=ami kernel_id=$KERNEL_ID < $FILES/images/$IMAGE_NAME.img
|
||||
fi
|
||||
if [ -n "$RAMDISK" ]; then
|
||||
RVAL=`glance add -A $SERVICE_TOKEN name="$IMAGE_NAME-ramdisk" is_public=true container_format=ari disk_format=ari < "$RAMDISK"`
|
||||
RAMDISK_ID=`echo $RVAL | cut -d":" -f2 | tr -d " "`
|
||||
fi
|
||||
glance add -A $SERVICE_TOKEN name="${IMAGE_NAME%.img}" is_public=true container_format=ami disk_format=ami ${KERNEL_ID:+kernel_id=$KERNEL_ID} ${RAMDISK_ID:+ramdisk_id=$RAMDISK_ID} < <(zcat --force "${IMAGE}")
|
||||
done
|
||||
fi
|
||||
|
||||
|
12
stackrc
12
stackrc
@ -44,6 +44,18 @@ CITEST_REPO=https://github.com/openstack/tempest.git
|
||||
CITEST_BRANCH=master
|
||||
|
||||
# Specify a comma-separated list of uec images to download and install into glance.
|
||||
# supported urls here are:
|
||||
# * "uec-style" images:
|
||||
# If the file ends in .tar.gz, uncompress the tarball and and select the first
|
||||
# .img file inside it as the image. If present, use "*-vmlinuz*" as the kernel
|
||||
# and "*-initrd*" as the ramdisk
|
||||
# example: http://cloud-images.ubuntu.com/releases/oneiric/release/ubuntu-11.10-server-cloudimg-amd64.tar.gz
|
||||
# * disk image (*.img,*.img.gz)
|
||||
# if file ends in .img, then it will be uploaded and registered as a to
|
||||
# glance as a disk image. If it ends in .gz, it is uncompressed first.
|
||||
# example:
|
||||
# http://cloud-images.ubuntu.com/releases/oneiric/release/ubuntu-11.10-server-cloudimg-armel-disk1.img
|
||||
# http://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-rootfs.img.gz
|
||||
IMAGE_URLS=http://smoser.brickies.net/ubuntu/ttylinux-uec/ttylinux-uec-amd64-11.2_2.6.35-15_1.tar.gz
|
||||
|
||||
# allow local overrides of env variables
|
||||
|
Loading…
Reference in New Issue
Block a user