From 20121bd1dca3e02272c861cb2469277241007cb8 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Wed, 28 Mar 2012 16:22:52 -0400 Subject: [PATCH] Add support for qcow2 images in $IMAGE_URLS. This patch adds support for loading a qcow2 image and using the 'bare' container format for all single file images. I tested this successfully by setting: IMAGE_URLS="http://berrange.fedorapeople.org/images/2012-02-29/f16-x86_64-openstack-sda.qcow2" Change-Id: Ia55ffd4957866a3d7b9fd7ba4c62e38663b35080 --- stack.sh | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/stack.sh b/stack.sh index 3a7fc5dafe..2766744565 100755 --- a/stack.sh +++ b/stack.sh @@ -1681,27 +1681,41 @@ if is_service_enabled g-reg; then *.img) IMAGE="$FILES/$IMAGE_FNAME"; IMAGE_NAME=$(basename "$IMAGE" ".img") + DISK_FORMAT=raw + CONTAINER_FORMAT=bare ;; *.img.gz) IMAGE="$FILES/${IMAGE_FNAME}" IMAGE_NAME=$(basename "$IMAGE" ".img.gz") + DISK_FORMAT=raw + CONTAINER_FORMAT=bare + ;; + *.qcow2) + IMAGE="$FILES/${IMAGE_FNAME}" + IMAGE_NAME=$(basename "$IMAGE" ".qcow2") + DISK_FORMAT=qcow2 + CONTAINER_FORMAT=bare ;; *) 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. - KERNEL_ID=""; RAMDISK_ID=""; - if [ -n "$KERNEL" ]; then - RVAL=`glance add --silent-upload -A $TOKEN name="$IMAGE_NAME-kernel" is_public=true container_format=aki disk_format=aki < "$KERNEL"` - KERNEL_ID=`echo $RVAL | cut -d":" -f2 | tr -d " "` + if [ "$CONTAINER_FORMAT" = "bare" ]; then + glance add --silent-upload -A $TOKEN name="$IMAGE_NAME" is_public=true container_format=$CONTAINER_FORMAT disk_format=$DISK_FORMAT < <(zcat --force "${IMAGE}") + else + # 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. + KERNEL_ID=""; RAMDISK_ID=""; + if [ -n "$KERNEL" ]; then + RVAL=`glance add --silent-upload -A $TOKEN name="$IMAGE_NAME-kernel" is_public=true container_format=aki disk_format=aki < "$KERNEL"` + KERNEL_ID=`echo $RVAL | cut -d":" -f2 | tr -d " "` + fi + if [ -n "$RAMDISK" ]; then + RVAL=`glance add --silent-upload -A $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 $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}") fi - if [ -n "$RAMDISK" ]; then - RVAL=`glance add --silent-upload -A $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 $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